npm audit fix angular 10.0.1 后的错误

Posted

技术标签:

【中文标题】npm audit fix angular 10.0.1 后的错误【英文标题】:Errors after npm audit fix angular 10.0.1 【发布时间】:2021-04-27 03:34:00 【问题描述】:

我今天运行了这个较旧的 10.0.1 Angular 项目,它告诉我它有很多低漏洞和一些高漏洞。所以我运行 npm audit fix 来修复它们。 但是现在当我尝试运行它时,它给了我这些错误:

Error: ./src/main.ts  
Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: angularCompiler.getResourceDependencies(...) is not a function or its return value is not iterable
    at getDependencies (C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:261:56)
    at C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:374:20
    at analyzingFileEmitter (C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:307:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)



Error: ./src/polyfills.ts  
Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: angularCompiler.getResourceDependencies(...) is not a function or its return value is not iterable
    at getDependencies (C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:261:56)
    at C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:374:20
    at analyzingFileEmitter (C:\Web\vgc\vgc\node_modules\@ngtools\webpack\src\ivy\plugin.js:307:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)

任何想法如何解决这个问题?我在网上找不到任何相关的问题或解决方案。

【问题讨论】:

nom audit fix 更新依赖项。有时更新的库与其他库或您的角度设置不兼容。确保您使用的是正确的 webpack 版本。 感谢您的回答,它确实必须解决兼容性问题。我更新了修复它的 webpack 库,但给了我一些更难以解释的错误。我尝试修复它一点,但最后我做了一件聪明的事,并通过将所有内容复制到一个现在可以正常工作的新项目来省去麻烦。 它总能解决问题,不是吗? ??? @rtman 我也面临同样的问题。在全新的 NX 安装上安装 tailwind 后开始发生这种情况,我尝试同时安装 45 的 webpack 版本。到目前为止没有运气,这里有什么建议吗?谢谢。 我也注意到webpack的版本在安装了上面提到的包后并没有改变,所以可能是别的东西。 webpack 版本:4.43.0 【参考方案1】:

将 Angular CLI 从 10 升级到 11 对我有用。

ng update @angular/core @angular/cli
ng update

【讨论】:

更新到 Angular 11 也为我解决了这个问题。请注意,上面的命令将始终更新到最新版本 做了很多对我有用的事情后完美。 这确实对我有用,但是经过反思,我应该首先尝试尝试 Darshan 的答案,即删除已安装的软件包并重新安装软件包。幸运的是,我没有其他需要关注的 Angular 项目。 当您必须保持 Angular 版本不变以最大限度地提高组件的项目间兼容性时,这不是一个真正的选择 这对我有用,谢谢!【参考方案2】:

试试这个

rm -rf node_modules/
npm install
npm run build

【讨论】:

您也可以使用npm start 或您的任何构建脚本(而不是npm run build)来构建或提供您的应用程序。【参考方案3】:

我也解决了同样的问题。主要原因是“@angular-devkit/build-angular”版本在我的情况下不匹配。我改变了它的版本兼容的角度版本。就我而言,我使用的是 angular 10,之前版本以“0.11”开头,我将其更改为“0.1002.3”。

【讨论】:

【参考方案4】:

试试这个:

rmdir /s node_modules
npm install "or" npm install @angular-devkit/build-angular
npm run build

【讨论】:

“试试这个”并不是一个好的答案。你应该解释如何为什么这可以解决他们的问题。我推荐阅读,“How do I write a good answer?"【参考方案5】:

我遇到了同样的问题。 我为成功解决问题所做的工作:

    git restore package-lock.json git restore package.json rm -rf node_modules/ npm 安装 npm 开始

步骤的原因: 1.2.恢复原始包文件的步骤 3步删除所有已安装的依赖项 4步再次安装依赖 毕竟,它恢复到原始状态,它可以工作。

【讨论】:

【参考方案6】:

您可以通过将 Angular CLI 版本从 10 升级到 11 来解决此问题。作为#Craig 的回答。

否则,删除 node_modules、package-lock.json 文件。

恢复旧的 package.json 文件,然后运行 ​​npm install。或者不要进行 npm 审计修复。

npm audit fix 升级/修改包依赖,这是错误的。

【讨论】:

【参考方案7】:

你应该试试这个

ng update @angular/cli @angular/core --allow-dirty --force

我之前尝试过,但不允许在 Windows 操作系统中更新

ng update @angular/cli @angular/core

ng update @angular/cli @angular/core --allow-dirty

这是由于 .\Temp\ng-fmB0C2\angular-errors.log 造成的问题

【讨论】:

【参考方案8】:

除了以上所有,还得做一个额外的步骤:

检查是否有重复的webpack版本,但不知道它是如何引入的。树看起来:

+-- @angular-devkit/build-angular@12.0.0 -- webpack@5.36.2 -- webpack@5.36.2

如果是这样,由(https://docs.npmjs.com/cli/v7/commands/npm-dedupe)修复:

npm 重复数据删除

【讨论】:

【参考方案9】:

我的客户要求我们使用他们已批准的特定版本。这对我来说是 v10。

在我检查了appropriate package.json 之后,我运行以下命令来解决这个问题

npm i @angular-devkit/build-angular@0.1002.0 @angular-devkit/architect@0.1002.0 @angular-devkit/build-optimizer@0.1002.0 @angular-devkit/core@10.2.0 @angular-devkit/schematics@10.2.0 --save

【讨论】:

【参考方案10】:

我的问题是由

引起的
"preserveSymlinks": true,

在我的构建选项中缺少angular.json

【讨论】:

【参考方案11】:

在我的情况下,安装以下软件包后问题就解决了。

npm install @ngtools/webpack

【讨论】:

【参考方案12】:

就我而言,我运行了 ng update @angular/cli@^11 @angular/core@^11

然后安装 webpack@4,因为其他包都依赖它。

然后安装 tapable & @types/webpack 因为 webpack 4 插件需要它。

.. 并且几次删除 node_modules 和 npm install :)

【讨论】:

你好。我们可以查看您的错误日志吗?这将有助于阐明您面临的问题。 你好。谢谢你的关心。我的问题现在已经解决了。再次Tq

以上是关于npm audit fix angular 10.0.1 后的错误的主要内容,如果未能解决你的问题,请参考以下文章

[已解决]报错run `npm audit fix` to fix them, or `npm audit` for details

npm run dev 报错 run `npm audit fix` to fix them, or `npm audit` for details

ubuntu安装npm(npm install)时报错:run `npm audit fix` to fix them, or `npm audit` for details

npm安装时出现run `npm audit fix` to fix them, or `npm audit` for details彻底解决的办法

ENOLOCK npm 错误!运行 npm audit fix 时出错

运行 `npm audit fix` 来修复它们,或运行 `npm audit` 了解详细信息