lerna
lerna初始化项目
# 创建项目
mkdir lerna-demo
cd lerna-demo
# 初始化项目
lerna init -i
项目结构:
lerna.json
{
"packages": [
"packages/*"
],
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true
}
- useWorkspaces: true,所有的依赖都会在项目根目录下的node_modules下管理,如下图所示:
启动npm 的workspace
将依赖统一放在根目录下的node_modules
下管理
- package.json
{
"name": "root",
"private": true,
"workspaces": [
"packages/*"
],
"devDependencies": {
"lerna": "^4.0.0"
}
}
将系统子模块的依赖都放在node_modules下管理,必须设置为yarn,否则不会出现
lerna.json
{
"lerna": "4.0.0",
"version": "1.0.10",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": [
"packages/core/*",
"packages/models/*",
"packages/commands/*",
"packages/utils/*"
],
}
如果使用npm方式,是不会出现这个目录的,对我们写代码的代码提示不友好
创建子模块
# 工具类模块
lerna create utils
# 核心模块
lerna create core
安装依赖
- 给所有子模块安装
lerna add typescript --dev
- 给指定模块安装
lerna add --scope=@xxx vue
useWorkspace
设置为true后,所有模块的依赖都在根目录下的node_modules。
打包时,需要使用命令lerna run build --scope=@jhlc/markdown-editor