lerna

lerna初始化项目

# 创建项目
mkdir lerna-demo
cd lerna-demo
# 初始化项目
lerna init -i

项目结构:
image

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/*"
  ],
}

image

如果使用npm方式,是不会出现这个目录的,对我们写代码的代码提示不友好
image

创建子模块

# 工具类模块
lerna create utils
# 核心模块
lerna create core

安装依赖

  1. 给所有子模块安装
lerna add typescript --dev

  1. 给指定模块安装
lerna add --scope=@xxx vue

useWorkspace

设置为true后,所有模块的依赖都在根目录下的node_modules。

打包时,需要使用命令lerna run build --scope=@jhlc/markdown-editor

posted @ 2023-01-10 15:07  fight139  阅读(56)  评论(0编辑  收藏  举报