npm install 给出警告,npm audit fix 不起作用

Posted

技术标签:

【中文标题】npm install 给出警告,npm audit fix 不起作用【英文标题】:Npm install gives warnings, npm audit fix not working 【发布时间】:2019-04-05 00:00:39 【问题描述】:

我正在开发一个带有 .net 核心 web api 的 Angular 应用程序。

当我克隆这个存储库时,我尝试在 Angular 应用程序上运行 npm install,但出现了一个奇怪的错误:

npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted "os":"darwin","arch":"any" (current: "os":"win32","arch":"x64")

audited 34090 packages in 14.711s
found 15 vulnerabilities (9 low, 6 high)
  run `npm audit fix` to fix them, or `npm audit` for details 

另外,如果我尝试执行 npm audit fix,我会收到更多错误:


npm audit fix
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your package-lock.json, run  npm install  to fix them.
npm ERR!     Invalid: lock file's @progress/kendo-theme-default@file:https:/registry.npmjs.org/@progress/kendo-theme-default/-/kendo-theme-default-2.48.1.tgz does not satisfy @progress/kendo-theme-default@file:lib/kendo-theme-default
npm ERR!     Invalid: lock file's bootstrap@file:https:/registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz does not satisfy bootstrap@file:lib/bootstrap

我该如何解决这个问题?

【问题讨论】:

请包括您的错误跟踪而不是图像。 【参考方案1】:

我在尝试安装软件包时遇到了同样的问题。尝试使用这样的sudo 命令全局安装:

sudo npm install -g <package name>

我正在使用 WSL,这种方法对我有用。

【讨论】:

不推荐使用sudo,因为它允许安装它的软件包以提升的权限运行。请改用nvmnasdf 之类的节点版本管理器并运行常规的npm i -g [package]。 (这也适用于 WSL)【参考方案2】:

我最近学到的最好的东西是安装npm-check-updates。 它会自动完成所有操作。

运行ncu for list 在我的情况下是这样的:

 $ ncu

 babel-core           ^6.26.0  →  ^6.26.3
 babel-loader          ^7.1.5  →   ^8.0.6
 babel-preset-env      ^1.6.1  →   ^1.7.0
 copy-webpack-plugin   ^4.6.0  →   ^5.0.5
 style-loader         ^0.20.2  →   ^1.0.1
 webpack                4.0.0  →   4.41.2

然后运行ncu -u自动升级。

【讨论】:

+1 用于 npm-check-updates。还发现这篇文章很有意义,并在看到所有这些错误后帮助我放松:voitanos.io/blog/… ncu 完全按预期工作,让我免了头疼,非常感谢。【参考方案3】:

这通常与 package-lock.json 混乱有关。我建议尝试:

1 - 删除你的 package-lock.json

2 - 删除你的 node_modules 文件夹

3 - 再次尝试 npm install

这用于在我的 Angular 应用程序中添加新包时解决几个问题。

祝你好运!

【讨论】:

好的,在查看错误本身之后,它说的是它在 npm 上找不到您正在寻找的这些包。这些似乎是引导程序和剑道 ui 主题。我将仅发送一个想法,也许尝试手动卸载并重新安装它们就可以了。 虽然在 OP 的情况下这可能没问题,但这种做法可能会适得其反。包锁的存在是有原因的——它确保你的依赖结构在安装之间是一致的。如果你删除它,你会丢失它,并且你的代码可能很容易行为不端。也可能不会立即引起注意。如果这样做,请确保至少有很好的测试覆盖率。

以上是关于npm install 给出警告,npm audit fix 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

发出带有弃用警告的 npm install -g expo-cli

如何解决 npm install 在非 MAC 操作系统上抛出 fsevents 警告?

npm-update 和 npm-install 可以给出不同的结果吗?

NEXUS npm install 给出 403 错误

npm install 给出错误:EPERM,取消链接

安装 material-ui 时显示警告: $ npm install @material-ui/core npm WARN ajv-keywords@3.2.0 需要 ajv@^6.0.0 的同级