当前位置: 首页 > news >正文

网站建设与动态网页目前较好的crm系统

网站建设与动态网页,目前较好的crm系统,文字图片在线制作生成器,博罗网站建设公司项目背景 在实际项目中,我们的前端项目往往是一个大型的Webpack项目,结构较为复杂。项目根目录下包含了各种配置文件、源代码、以及静态资源,整体布局相对扁平。Webpack的配置文件分散在不同的部分,包括入口文件、输出目录、加载…

项目背景

在实际项目中,我们的前端项目往往是一个大型的Webpack项目,结构较为复杂。项目根目录下包含了各种配置文件、源代码、以及静态资源,整体布局相对扁平。Webpack的配置文件分散在不同的部分,包括入口文件、输出目录、加载器和插件等,这使得项目的维护和配置变得相对繁琐。

项目主要由若干个模块和组件构成,它们之间存在复杂的依赖关系。在当前状态下,我们发现随着项目规模的扩大,构建时间逐渐变长,开发环境下的热模块替换效果不尽如人意。此外,项目中存在一些共享的代码和功能,但由于项目结构的限制,代码重用性并不理想。

依赖管理方面,我们使用yarn进行包管理,包括核心库、工具和其他第三方库。同时,项目已经接入了Git作为版本控制系统,但在版本控制方面我们也面临一些挑战,如分支管理、合并冲突等。

在部署和发布方面,我们采用了一套手动的流程,部署新版本涉及多个步骤,这可能导致一些不必要的错误。总体而言,我们的Webpack项目在开发和维护方面遇到了一些困难,因此我们决定考虑引入Lerna来进行项目重构,以期能够更好地管理多包结构、优化构建流程,提高代码的可维护性和可扩展性。

lerna简介

Lerna 是一个用于管理具有多个包(package)的 JavaScript 项目的工具。它优化了拥有多个包的代码库的工作流程,使得更容易进行本地开发、版本控制和发布。

以下是 Lerna 的一些主要特点和功能:

  1. 包管理: Lerna 可以将大型代码库拆分成多个包,并将这些包存储在单个代码仓库中。每个包都可以独立地进行版本管理和发布。

  2. 版本管理: Lerna 支持统一版本和独立版本两种模式。统一版本模式会确保所有包的版本号相同,而独立版本模式允许每个包有不同的版本号。

  3. 本地开发: Lerna 提供了一组命令,使得在进行本地开发时能够更轻松地进行包之间的协同工作。例如,它可以通过符号链接的方式将本地包链接到相应的依赖包,以便在本地进行测试和修改。

  4. 原子提交: Lerna 支持原子提交,即在进行版本管理操作时,可以确保所有包都被一起提交,以保持版本的一致性。

  5. 依赖管理: Lerna 能够优化包之间的依赖关系,确保包在本地开发和远程构建时都能够正确引用它们的依赖项。

  6. 自动化发布: Lerna 支持自动发布,可以自动升级版本号、生成变更日志,并将包发布到 npm 或其他仓库。

通过这些功能,Lerna 提供了一种更加高效的方式来管理复杂的 JavaScript 项目,特别是那些包含多个独立组件或模块的大型代码库。

lerna安装配置

初始化工作区

在你的 package.json 中添加 workspaces 字段。

{"private": true,"workspaces": ["packages/*"]
}

同时,在项目根目录下创建packages文件夹:

mkdir packages

配置lerna

# 全局安装lerna
yarn global add lerna
lerna init -i

完成上述步骤之后,会在项目根目录生成lerna.json配置文件,修改如下:

{"$schema": "node_modules/lerna/schemas/lerna-schema.json","version": "independent","npmClient": "yarn"
}

创建lerna子工程

本节我们以components文件夹为例,将其改造成一个lerna子项目zhique-ui用来开发前端组件库。

创建子项目

lerna create zhique-ui

引用父项目的配置

webpack配置

  • 安装依赖

    yarn add -D webpack-merge -W
    
  • 子项目webpack配置

    const merge = require('webpack-merge');
    const parentWebpackConfig = require('../../webpack.config');// 根据实际路径调整
    const mergedConfig = merge(parentWebpackConfig, {// 子项目的特定配置,如果有的话
    });module.exports = mergedConfig;

tsconfig配置

{"extends": "../../tsconfig.json","include": ["src/**/*"],"compilerOptions": {"outDir": "lib"}
}

Babel配置

{"extends": ".../../.babelrc"
}

编译子项目

  • components文件夹下的src目录拷贝到zhique-ui
    在这里插入图片描述
  • 编译src文件夹
// 在子工程根目录下执行
tsc

在这里插入图片描述

测试效果

更改组件引用方式

import React from 'react';
import { Icon } from 'zhique-ui';export default () => (<div><Icon type="compass" /></div>
);

访问页面

结语

在进行基于 Lerna 的前端工程化配置的过程中,我们深入了解了 Lerna 的基本概念和用法。从项目的初始化、子包的创建、配置文件的调整,到子包的相互依赖管理和独立开发,我们一步步探索了如何优雅地组织和管理前端项目。

通过 Lerna,我们能够更高效地进行代码共享、模块化开发,并充分利用 Yarn Workspaces 提供的依赖管理优势。同时,配置文件的合理调整和工具的灵活运用,为我们的前端工程提供了更好的可维护性和可扩展性。

希望这篇博文对你在前端工程化方面的学习和实践有所启发。当然,工程化的道路是不断演进和学习的过程,期待你在实际项目中能够灵活运用这些知识,构建出更加优秀的前端工程。

http://www.cotm.com.cn/news/225.html

相关文章:

  • 佛山顺德网站建设福州seo代理计费
  • 上海哪里有做网站的it培训机构怎么样
  • 网渠道seo专员是什么意思
  • 企业网站后台模版购买网站域名
  • 现在哪些网站做外贸的好做nba最新排行榜
  • 黄石本土做网站的公司百度大搜推广
  • 怎样做动漫照片下载网站网站推广的技术有哪些
  • 在线手机网站制作营销成功的案例
  • 重庆市住房和城乡建设人才促进网惠州seo招聘
  • 南宁好的网站建设公司百度排行榜风云榜
  • ps手机网站页面设计电商网站平台有哪些
  • 重庆宣传片制作网站优化团队
  • 齐齐哈尔建设局网站首页线上营销推广渠道
  • 有做财经 直播的网站吗合肥全网优化
  • 网站开发人员应该用什么浏览器如何自己做一个网页
  • 自己做网站系统首选平台深圳百度推广代理商
  • 1688成品网站源码下载医疗器械龙头股
  • vps做网站怎么加速超级外链在线发布
  • 网站视频打不开什么原因希爱力5mg效果真实经历
  • 做网站和做软件哪个有发展实体店怎么推广引流
  • 制作微信网站模板下载不了免费的外链平台
  • 网站收费系统平台网站优化软件哪个好
  • 成人高考准考证打印网站嵌入式培训
  • 有实力营销型网站建设佛山seo
  • 深圳网站开发antnw小程序开发教程
  • 微信小程序怎么做网页安阳企业网站优化外包
  • 做网站属于什么工作上海seo公司
  • 自己做的php网站进行伪静态免费的网站推广方法
  • 如何做网站网页做网站设计的公司
  • 收藏网站模板免费的郑州网络推广服务