当 ignore-scripts 设置为 true 时,npm 的行为有何不同?

Dan*_*Dan 24 node.js npm npm-scripts

我刚看了一个谈话,其中发言者建议在运行:

npm config set ignore-scripts true

这样包的安装后脚本和安装前脚本就不会运行。这样,您就可以避免恶意程序包中的病毒。

我的问题是:运行此命令后,我是否必须对 npm install 软件包执行不同的操作并使它们在项目中工作?

如果在使用 npm 时运行此命令不会带来额外的不便,那么运行它不会有任何缺点。它只会帮助您避免病毒。

如果是这种情况,为什么这不是默认设置?

我问是因为我假设通过忽略包脚本,npm 包的行为会有所不同,人们将不得不手动做更多的事情。

bal*_*ve2 7

我同意@RobC 的观点。它还package.json完全禁用了在我的程序中运行自定义脚本,这显然是一个破坏因素,因为您无法再定义和运行自定义脚本。

尽管考虑这些安全问题可能很有用,但我认为跑步不是npm config set ignore-scripts true正确的选择。我也运行了它,最终将其关闭以继续运行我的自定义包脚本。

所以视频中的建议最终不太合理,我想......

  • 也许这是一个很好的时机,甚至是正确的时机,重新考虑如何运行自定义脚本 -1 以提倡便利性而不是安全性和负责任的工作 (10认同)
  • @jimmont 现在又是一个好时机,最近有 UAParser.js 的消息.. (5认同)

JSc*_*her 4

如果您想安全起见,请使用“--ignore-scripts”或配置设置,但也可以使用can-i-ignore-scripts

它可以帮助您找出存在哪些脚本(特别是当您安装新的依赖项时),但会阻止自动执行与您已使用的库的新版本一起出现的新脚本。