背景:不同的项目需要使用不同的
npm包管理器, 但是在同一个项目多人协作的情况下,尽量保持所有人使用同一个npm包管理器,方便管理也方便排查错误同时也方便构建。 笔者所在的项目因为CI机器的镜像没有安装pnpm,所以需要限制团队成员只能使用npm来安装node_modules(如果开发环境使用pnpm安装node_modules, 而生产环境使用npm安装node_modules, 可以造成一些难以预估的问题 )
答案: 使用 limit-package-install (如果使用了非经允许的 包管理器 下载的 node_modules, 会启动一个子进程删除 node_modules)
- 如何使用
// package.json
"scripts": {
"preinstall": "npx limit-package-install"
}
limit-package-install默认 包管理器 是npm,如果需要设置 其他的 包管理器,直接修改 第一个参数即可limit-package-install默认isDeleteIllegalInstallItem为true。此字段含义: 如果是非指定 包管理器安装的npm包, 则启动一个单独的进程 删除非法安装的node_modules- 下面 这两个命令完全等价,因为 包管理器默认是
npm,可以不传。默认启动一个单独的进程 删除非法安装的node_modules
npx limit-package-install npm isDeleteIllegalInstallItem=true
npx limit-package-install
- 仓库链接 欢迎 star