npm - 如何在不禁用 package.json 中定义的脚本的情况下禁止 npm 包执行安装后脚本?

标签 npm

正在观看 nice YouTube video提到使用 NPM 包管理器的安全问题,我认为禁止包在安装时执行代码是有意义的。此 NPM 配置将执行以下操作:

npm config set ignore-scripts true

但随后在 package.json 中定义的脚本不要跑。包括npm start .这很烦人。

有没有一种方法可以阻止包执行代码(如果我没记错的话,我认为这是安装后脚本)并且仍然允许在 package.json 中定义的脚本运行?

澄清一下:我想执行我自己的脚本。我不要想在 npm install 期间执行第 3 方脚本.

最佳答案

npm-install文件指出:

The --ignore-scripts argument will cause npm to not execute any scripts defined in the package.json.



所以,基本上当你安装一个包时,你需要附加 --ignore-scripts防止第三方包执行脚本的参数,例如 postinstall .

例如:
npm install <pkg_name> --ignore-scripts

备注:
  • 第三方软件包安装完成后,您仍然可以运行在 package.json 中定义的自己的 npm 脚本。
  • I think it makes sense to disallow packages to execute code as they are installed.



    这取决于,当使用 --ignore-scripts 忽略脚本时您不能总是保证您安装的软件包功能齐全 - 这取决于 postinstall 中执行的任务例如脚本。
  • 您不能使用 --ignore-scripts 指定要忽略哪些脚本。争论。
  • 关于npm - 如何在不禁用 package.json 中定义的脚本的情况下禁止 npm 包执行安装后脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59028570/

    相关文章:

    node.js - NPM install -g cordova ionic 给出 Err -13

    javascript - 为什么webpack找不到loader

    node.js - npm 安装错误版本的 Angular(8.1.0)

    cURL 初始化失败

    node.js - 找不到模块 'gulp-sass'

    javascript - gulp:自动为请求添加版本号以防止浏览器缓存

    node.js - 不能在控制指令或其他混入中定义函数

    java - npm 与 java - 抛出错误

    node.js - Browserify 构建失败,package.json 依赖项中存在本地版本的 npm 模块

    node.js - npm 错误!解析 '.../openpgpjs.org\r\n\r\' 附近时 JSON 输入意外结束