【发布时间】:2020-04-15 17:23:34
【问题描述】:
我刚刚看了一个talk 演讲者推荐跑步的地方:
npm config set ignore-scripts true
这样软件包的安装后脚本和安装前脚本就不会运行。这样,您就可以避免恶意程序包中的病毒。
我的问题是:运行此命令后,我是否必须对 npm install packages 执行不同的操作并让它们在项目中工作?
如果在使用 npm 时运行此命令不会带来额外的不便,那么运行它不会有任何缺点。它只会帮助您避免病毒。
如果是这种情况,为什么这不是默认设置?
我问是因为我假设忽略包脚本,npm 包的行为会有所不同,并且必须手动执行更多操作。
【问题讨论】:
-
一些包运行
pre/post-install脚本用于设置/配置目的。虽然将ignore-scripts设置为true可能 可以缓解恶意代码,但它可以而且经常会导致安装的软件包根本无法运行。 -
如果 'npm config set ignore-scripts true' 产生了@RobC 提到的上述问题,你对 npm install --ignore-scripts 有什么看法,是不是更好。
-
@AshiqueDesai -
--ignore-scripts选项产生与npm config set ignore-scripts true相同的功能。所以关于你的具体问题; “好些了吗?”,答案是“否”,因为它们本质上是一样的。任何一种(或两种)方法都会导致 npm 不执行 package.json 中定义的任何脚本。 -
@RobC 不会运行
npm install SOMEPACKAGES --ignore-scripts阻止pre / post脚本运行该特定安装,同时仍然允许npm package.json 脚本工作(即npm run start)?这与设置npm config set ignore-scripts true不同,它默认为所有未来的脚本执行此操作。
标签: node.js npm npm-scripts