我正在尝试从我的主目录中使用 npm 全局安装一个包。安装完成后,显示存在漏洞。尝试运行
npm audit fix
时,出现以下错误。
npm 错误!代码 ENOLOCK npm 错误!审核此命令需要现有的 锁文件。 npm 错误!审计 尝试先使用以下命令创建一个: npm i --package-lock-only npm 错误!审核原始错误:loadVirtual 需要现有的收缩包装文件
我知道该错误要求我运行
npm i --package-lock-only
,但是我应该在哪个目录中创建此文件?在不指定路径的情况下运行该命令不起作用。我还尝试在安装包的目录中创建文件,但这也没有解决问题。另外,为什么这个文件一开始不存在?
出现此错误的原因有多种。以下是可能的原因及其解决方案:
1。您所在的目录有误
原因:大多数时候,问题是您不在
package.json
和package-lock.json
文件所在的正确项目目录中。
解决方案: 使用以下命令导航到终端中的正确目录:
cd /path/to/your/project
2。缺少 package-lock.json 原因:您的项目目录中缺少package-lock.json文件。
解决方案: 运行以下命令来生成它:
npm install
这将创建一个新的 package-lock.json 文件。
3. package-lock.json 内容无效
原因:package-lock.json 文件可能已损坏,这种情况有时会在自动 Git 合并期间发生。
解决方案: 删除package-lock.json文件:
rm package-lock.json
重新安装依赖项以重新生成有效文件:
npm install
4。过时的 npm 版本
原因:您可能正在使用过时的 npm 版本,该版本不兼容或存在错误。
解决方案: 更新到 npm 的最新版本:
npm install -g npm@latest
5。 npm 缓存问题
原因:如果上述解决方案均不起作用,则您的 npm 缓存可能已损坏。
解决方案: 清除 npm 缓存:
npm cache clean --force
或者,您可以验证缓存完整性:
npm cache verify