项目简介
本项目基于Node.js构建,利用Lerna框架来管理多个JavaScript包。Lerna能优化使用git和npm管理多软件包代码仓库的工作流程,简化多包项目的依赖管理与版本控制,助力开发者在单个仓库高效管理多个npm包,实现代码和工具的共享。
项目的主要特性和功能
- 多包管理模式灵活:有固定/锁定模式(默认)和独立模式。固定模式通过
lerna.json统一管理版本,部分包改动会使所有包版本号升级;独立模式可对每个package单独设置版本号。 - 依赖管理便捷:能轻松管理和同步多包间的依赖关系,使用
lerna add安装依赖,lerna link链接依赖,lerna import导入存在的包。 - 构建与测试高效:提供便捷方式运行构建和测试命令,可在所有包中统一执行,如用
lerna exec执行shell脚本,lerna run执行npm命令。 - 版本控制精准:可管理和更新多包的版本号,保持版本同步,使用
lerna version修改版本号,lerna changed查看变更,lerna diff查看差异。 - 发布流程简单:提供简便方法将多包发布到npm仓库,使用
lerna publish发布项目。 - 代码质量保障:集成
eslint检查代码质量,Prettier统一代码风格,stylelint规范样式代码,editorconfig协同团队代码风格。 - Git钩子管理:通过
husky和lint - staged在git commit前检查代码,用commitizen和@commitlint/cli规范提交信息。
安装使用步骤
环境准备
确保系统已安装Node.js。
全局安装工具
- 安装Lerna:
npm install -g lerna - 配置安装源(可选):
npm install -g yrm和npm install -g nrm
项目初始化
- 创建新的
git代码仓库:mkdir lerna - demo && cd lerna - demo - 将仓库转变为Lerna仓库:
lerna init
创建和管理包
- 创建包:
lerna create <package - name> --registry <registry - url> - 添加依赖:
lerna add <dependency - name> packages/<package - name> - 链接依赖:
lerna link - 重新安装依赖:
lerna bootstrap
开发和测试
- 执行shell脚本:
lerna exec -- <script - name> - 执行npm命令:
lerna run <script - name> - 清空依赖:
lerna clean
代码检查与格式化
- 安装
eslint、Prettier、stylelint等工具:npm i eslint prettier eslint - plugin - prettier stylelint --save - dev - 配置相关规则文件(如
.eslintrc.js、.prettierrc.js、.stylelintrc.js) - 在
package.json中添加脚本:json "scripts": { "test": "jest", "lint": "eslint --ext .js packages/**/*.js --no - error - on - unmatched - pattern --fix", "lint - staged": "lint - staged - c ./.husky/.lintstagedrc.js", "prepare": "husky install", "commit": "git - cz" }
配置Git钩子
- 安装Git钩子相关工具:
npm i husky lint - staged commitizen @commitlint/{config - conventional,cli} --save - dev - 初始化Git钩子:
npm set - script prepare "husky install"; git init; npm run prepare - 添加
pre - commit钩子:npx husky add .husky/pre - commit "lint - staged" - 配置
commit - msg钩子:- 安装配置
commitizen和@commitlint - 配置
.commitlintrc.js - 添加命令:
npx husky add .husky/commit - msg "npx --no - install commitlint --edit $1"
- 安装配置
发布上线
- 添加
pre - push钩子:npx husky add .husky/pre - push "npm run test" - 修改版本号:
lerna version - 发布项目:
lerna publish
调试源码(可选)
创建vscode启动调试的配置文件:.vscode/launch.json
json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/source/lerna/core/lerna/cli.js",
"args": ["ls"]
}
]
}
创建npm私服(可选)
- 安装
verdaccio:npm install verdaccio - g - 启动私服:
verdaccio - 登录发布:
npm adduser --registry http://localhost:4873/npm publish --registry http://localhost:4873/
- 本地访问:
http://localhost:4873
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】