如何限制团队成员只使用一种包管理工具下载 node_modules

151 阅读1分钟

背景:不同的项目需要使用不同的 npm 包管理器, 但是在同一个项目多人协作的情况下,尽量保持所有人使用同一个npm 包管理器,方便管理也方便排查错误同时也方便构建。 笔者所在的项目因为 CI 机器的镜像没有安装 pnpm,所以需要限制团队成员只能使用 npm 来安装 node_modules (如果开发环境使用 pnpm 安装 node_modules, 而生产环境使用 npm 安装 node_modules, 可以造成一些难以预估的问题 )

答案: 使用 limit-package-install (如果使用了非经允许的 包管理器 下载的 node_modules, 会启动一个子进程删除 node_modules)

  1. 如何使用
  // package.json
  "scripts": {
    "preinstall": "npx limit-package-install"
  }
  1. limit-package-install 默认 包管理器 是 npm,如果需要设置 其他的 包管理器,直接修改 第一个参数即可
  2. limit-package-install 默认 isDeleteIllegalInstallItemtrue 。此字段含义: 如果是非指定 包管理器安装的 npm 包, 则启动一个单独的进程 删除非法安装的 node_modules
  3. 下面 这两个命令完全等价,因为 包管理器默认是 npm,可以不传。默认启动一个单独的进程 删除非法安装的 node_modules
npx limit-package-install npm isDeleteIllegalInstallItem=true
npx limit-package-install
  1. 仓库链接 欢迎 star