我希望更改npm audit
的默认行为。
默认行为是审核所有包,包括仅限开发人员的包。这不是很有用,因为我信任我的开发环境,更关心生产级别的安全性这并不是说我完全忽略了开发漏洞,因为我仍然在仔细研究它们,而是想把重点放在更重要的方面——生产上。
自版本6以来,npm audit
已为审核命令设置了--production
标志。运行npm audit
时,如何将此标志默认为true?我想在package.json
中指定用于NPM安装的--production
(或--omit=dev
(。这可能吗?
(此外,任何关于这一行动后果的讨论或澄清你认为我可能存在的任何误解都将受到欢迎,因为我不反对学习更多。(
您可以通过在package.json中设置环境变量来实现这一点。这适用于npm
audit
和install
。
要设置的环境变量NODE_ENV
:
NODE_ENV
环境变量设置为'production'
,则omit
将默认为dev
例如:
...
"scripts": {
"test": "NODE_ENV=test"
},
...
另一种方法是使用bash别名:
注意:这个方法只适用于BASH、ZSH和可能的KSH(我没有KSH,所以我不能测试它。(
alias paudit='npm audit --production'
如果出于某种原因您不想再这样了,您可以使用以下代码来删除环境变量:
unalias paudit
要使用env-var,只需键入别名:
paudit
这与键入npm audit --production
相同
如果你现在尝试,它会起作用的。但是,当您关闭终端并重新打开它时,env-var将被擦除,因此您必须重新定义它。要使env-var在重新启动终端甚至计算机后保持不变,请在代码编辑器(如vsCode(中打开~/.bash_aliases
,而不是文本编辑或记事本(如果此文件不存在,请创建它(。然后,键入
alias paudit='npm audit --production'
现在,您已经设置好了:当您键入paudit时,它将只审核生产包,它将适用于您想要的任何地方,而无需在每次有新项目时设置它。