我刚刚观看了talk,演讲者建议跑步:
npm config set ignore-scripts true
,以便不运行软件包的安装后脚本和预安装脚本。这样,您就可以避免在恶意软件包中感染病毒。
我的问题是:运行此命令后,我是否必须做其他与npm install软件包不同的事情并使它们在项目中工作?
如果使用npm时运行此命令不会带来任何其他不便,则运行它不会带来任何不利影响。它只会帮助您避免病毒。
如果是这种情况,为什么不将其设为默认设置?
我问是因为我认为通过忽略软件包脚本,npm软件包的行为会有所不同,并且人们将不得不手动执行更多操作。
答案 0 :(得分:3)
我在这里同意@RobC。对于我来说,它也完全禁用了在我的package.json
中运行自定义脚本的功能,这显然很麻烦,因为您无法再定义和运行自定义脚本。
尽管考虑这些安全性问题可能很有用,但我认为运行npm config set ignore-scripts true
不是正确的选择。我也运行了它,最后将其关闭以继续运行我的自定义程序包脚本。
所以,我想视频中的建议最终听起来不是太听起来>
答案 1 :(得分:1)
尽管考虑这些安全问题可能很有用,但我不认为运行 npm config set ignore-scripts true 是正确的选择
答案 2 :(得分:0)
当某些依赖项需要运行脚本以使用node-gyp构建特定于平台的代码时,我遇到了类似的问题。
在每个项目的忽略脚本中启用一个选项以启用特定的脚本会很高兴。
到目前为止,我们决定在.npmrc
中全局使用ignore-scripts = true,并在我的项目中使用一个额外的脚本,基本上可以做到这一点:
#!/bin/bash
set -e
npm explore sqlite3 -- yarn run install
npm explore bcrypt -- yarn run install
p.s。毛线没有explore
答案 3 :(得分:0)
在我看来,演讲者建议这是一个陷阱。当我说 catch 时,意味着他试图吸引观众的注意力。他的全部要点是介绍他提供给您使用的内容。 我猜“npm config set ignore-scripts true”在他推荐的库或系统上工作得很好。这是我能看到的唯一解释。