npm audit fix angular 10.0.1 后的错误

Errors after npm audit fix angular 10.0.1

我今天 运行 这个旧的 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)

有什么解决办法吗?我在网上找不到任何相关的问题或解决方案。

试试这个

rm -rf node_modules/
npm install
npm run build

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

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

试试这个:

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

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

  1. git恢复包-lock.json
  2. git恢复package.json
  3. rm -rf node_modules/
  4. npm 安装
  5. npm 启动

步骤原因: 1.2.恢复原始包文件的步骤 3步删除所有安装的依赖 4步再次安装依赖 毕竟恢复原状了,有效

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

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

恢复旧的 package.json 文件,然后 运行 npm install。或者不做 npm audit fix。

npm audit 修复 upgrades/modifies 包依赖性,这是错误的。

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

就我而言,安装以下软件包后问题已解决。

npm install @ngtools/webpack

你应该试试这个

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

我之前尝试过,但不允许在 windows os

中更新
ng update @angular/cli @angular/core

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

这是因为 .\Temp\ng-fmB0C2\angular-errors.log

而产生的问题

除了以上所有的,还要多做一个步骤:

  • 检查是否有重复版本的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 去重

对于我的情况,我 运行 ng update @angular/cli@^11 @angular/core@^11

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

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

.. 几次删除 node_modules & npm install :)

我的客户让我们使用他们已经批准的特定版本。这是我的 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

我的问题是由

引起的
"preserveSymlinks": true,

我的构建选项中的 angular.json 缺失。