如何解决npm 审计修复 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)
任何想法如何解决这个问题?我真的在网上找不到任何相关的问题或解决方案。
解决方法
将 Angular CLI 从 10 升级到 11 对我有用。
ng update @angular/core @angular/cli
ng update
,
试试这个
rm -rf node_modules/
npm install
npm run build
,
试试这个:
rmdir /s node_modules
npm install "or" npm install @angular-devkit/build-angular
npm run build
,
我遇到了同样的问题。 我为成功解决问题所做的工作:
- git restore package-lock.json
- git restore package.json
- rm -rf node_modules/
- npm 安装
- npm 启动
步骤的原因: 1.2.还原原始包文件的步骤 3步删除所有已安装的依赖项 4步再次安装依赖 毕竟,它恢复到原始状态,它起作用了。
,我也解决了同样的问题。主要原因是“@angular-devkit/build-angular”版本与我的情况不匹配。我改变了它的版本兼容角度版本。就我而言,我使用的是 angular 10,之前版本以“0.11”开头,我将其更改为“0.1002.3”。
,您可以通过将 Angular CLI 版本从 10 升级到 11 来解决此问题。作为#Craig 的回答。
否则,删除 node_modules、package-lock.json 文件。
恢复旧的 package.json 文件,然后运行 npm install。或者不要进行 npm 审计修复。
npm 审核修复升级/修改包依赖项,因此出错。
,你应该试试这个
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 造成的问题
,除了以上所有的,还要做一个额外的步骤:
- 检查是否有重复版本的 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 重复数据删除
,我的客户让我们使用他们已经批准的特定版本。这对我来说是 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
,
就我而言,安装以下软件包后问题已解决。
npm install @ngtools/webpack
,就我而言,我运行了 ng update @angular/cli@^11 @angular/core@^11
然后安装 webpack@4,因为其他包依赖它。
然后安装 tapable & @types/webpack 因为 webpack 4 插件需要它。
.. 几次删除 node_modules 和 npm install :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。