You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
expressgy 3767e07aec first commit2 3 months ago
packages first commit 3 months ago
scripts first commit 3 months ago
.gitignore first commit 3 months ago
README.md first commit2 3 months ago
package.json first commit 3 months ago
pnpm-lock.yaml first commit 3 months ago
pnpm-workspace.yaml first commit 3 months ago

README.md

Monorepo的使用方法

  1. 安装pnpm
npm i -g pnpm
  1. 新建monorepo项目
mkdir monorepo-project
  1. 初始化项目
# pnpm init 现在不能使用-y
cd monorepo-project
pnpm init
  1. 新建workspace定义文件

参考官网给出的例子 https://pnpm.io/zh/pnpm-workspace_yaml

echo "packages:
  - 'packages/*'" > pnpm-workspace.yaml
  1. 在packages下建项目(因为上免得文件声明的是packages,你也可以建立其他的目录后声明)
cd packages
mkdir projectA
mkdir projectB
# 开始初始化各个项目
  1. 各个项目互相引用

第一次不要使用pnpm add,在子项目的package.json中,直接写依赖

{
    "dependencies": {
        "tools": "workspace:*",
    }
}

后面可以在主项目目录使用pnpm add 像添加的依赖包名 --filter 给那个项目添加

  1. 引用完了记得在主项目构建pnpm i

  2. 启动项目

# pnpm run -C packages/web dev
pnpm run -C packages/子项目路径 子项目中的启动命令

scripts中的文件的意思是禁用npm
在package.json中添加这条命令 "preinstall": "node ./scripts/preinstall.js"

if(!/pnpm/.test(process.env.npm_execpath || '')) {
    console.log('只能使用pnpm');
    console.warn()
    process.exit(1)
}
  1. 其他命令
# 给公共区域添加包
pnpm add -w axios
# 给指定子项目添加包
pnpm add axios --filter 子项目名