项目简介
本项目基于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】