更改 npm audit 的默认行为

5

我想要改变 npm audit 的默认行为。

默认行为是审核所有的包,其中包括只用于开发的包。这并不是很有用,因为我信任我的开发环境,并更加关注生产级别的安全性。这并不意味着我完全忽略了开发漏洞,因为我仍然在检查它们,但是我更希望把重点放在更重要的地方——生产。

自从版本 6 开始,npm audit 命令就有了 --production 标志。当运行 npm audit 时,如何将此标志设置为默认值为 true?我想在我的 package.json 中指定 --production (或 --omit=dev)进行 NPM 安装。这可行吗?

(此外,欢迎讨论此操作的影响或澄清您认为我可能会有的任何误解,因为我乐意学习更多。)

2个回答

3
你可以通过 在package.json中设置环境变量 来实现。这适用于 npm auditinstall
你需要设置的环境变量是 NODE_ENV:

如果将 NODE_ENV 环境变量设置为 'production',则 omit 将默认为 dev

例如:
...
"scripts": {
  "test": "NODE_ENV=test"
},
...

1

另一种方法是使用bash别名:

注意:此方法仅适用于Bash、Zsh,可能还有Ksh(我没有Ksh,无法测试)。

alias paudit='npm audit --production'

如果您不再需要此功能,可以使用以下代码删除环境变量:

unalias paudit

要使用环境变量,只需键入别名名称:

paudit

这与键入npm audit --production相同。
如果您现在尝试,它会起作用。然而,当您关闭终端并重新打开它时,环境变量将被删除,因此您必须再次定义它。为了使环境变量在重新启动终端甚至计算机后仍然存在,请在诸如vsCode之类的代码编辑器中打开~/.bash_aliases而不是文本编辑或记事本(如果不存在此文件,请创建它)。然后,键入:
alias paudit='npm audit --production'

现在,你已经设置好了:当你输入paudit时,它将仅审核生产包,并且无论你想要的地方都可以使用,而无需每次有新项目时都进行设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接