最近刚接触 monorepo ,记录一下目前用到的一些脚本命令。
假设最终需要的项目结构如下:
my_project
│
├── node_modules
├── package.json
├── packages
│ ├── a
│ ├── b
│ └── c
注意:下面所有的命令都是在 my_project 目录下执行的。
注意:workspace 是 npm v7.x 新增的功能,所以需要确保你的 npm 版本大于等于 7.0
preinstall
从字面意思理解是在 install
之前执行。但到了 NPM 7.0 版本以后就有所不同。
我的项目使用的是 pnpm 包管理器,但在 pnpm install
之前需要执行脚本来处理 package.json
文件,所以用到了 preinstall
脚本,但 preinstall
执行的时机跟预想的不一样: preinstall
实际上是在 install
之后执行的(即安装完依赖之后执行的)。在 pnpm 的 GitHub 里面找到了相似问题的 Issue ,从这里找到了答案,原来是 NPM 的问题。
1 / 1