在下载npm包时突然出现这个错误,解决方法如下
1.可能是没有package.json文件,如果没有该文件,使用npm init
初始化创建该文件
2.运行下面的命令
npm audit fix
npm audit fix --force
npm audit
npm i
3.删除node_modules和package-lock.json后再执行上面的命令
如果node_modules无法删除
可以使用rimraf包来删除
npm i rimraf -g
rimraf node_modules
解决问题之后,去npm文档查看了npm audit
audit命令将项目中配置的依赖项的描述提交到默认注册表,并要求提供已知漏洞的报告。返回的报告包括有关如何处理此信息的说明。
使用npm audit fix 可以让npm自动修复漏洞,某些漏洞无法自动修复,需要手动干预或者审核
文档中给出了audit fix的各种用法
扫描项目中的漏洞并自动为易受攻击的依赖项安装任何兼容的更新:
$ npm audit fix
运行时audit fix无需修改node_modules,但仍然更新pkglock:
$ npm audit fix --package-lock-only
跳过更新devDependencies:
$ npm audit fix --only=prod
已audit fix安装semver,主要更新到顶层的依赖,不只是semver兼容的:
$ npm audit fix --force
做一个预演,以得到一个什么样的想法audit fix就行了,还输出安装在JSON格式的信息:
$ npm audit fix --dry-run --json
扫描项目中的漏洞并显示详细信息,而无需修复任何内容:
$ npm audit
以JSON格式获取详细的审计报告:
$ npm audit --json
以明文结果获取详细的审计报告,以制表符分隔,以便将来在脚本或命令行后处理中重复使用,例如,选择打印的一些列:
$ npm audit --parseable
要解析列,您可以使用例如awk,只打印其中一些:
$ npm audit --parseable | awk -F $'\t' '{print $1,$4}'