如何解决WEBPACK 弃用数组以使用 web pack 5 在 angular 11 中设置警告
我将我的应用从 angular 10 迁移到了 11,并使用以下命令更新到了 webpack 5:
"resolutions": {
"webpack": "^5.0.0"
}
当我构建/服务时,我收到以下警告 =
(node:3926) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET_INDEXER] DeprecationWarning: chunk.files was changed from Array to Set (indexing Array is deprecated)
(Use `node --trace-deprecation ...` to show where the warning was created)
知道我该怎么做吗?用集合替换所有数组?我可以将这个node --trace-deprecation
放在我的应用程序中的什么位置以了解导致此问题的文件?
谢谢。
更新
我在构建过程中添加了 --trace-deprecation 并得到以下日志:
(node:12987) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET_INDEXER] DeprecationWarning: chunk.files was changed from Array to Set (indexing Array is deprecated)
at Set.fn (/Users/xxxxx/node_modules/webpack/lib/util/deprecation.js:128:4)
at xxx/node_modules/@angular-devkit/build-angular/src/webpack/plugins/analytics.js:173:57
at Array.forEach (<anonymous>)
at NgBuildAnalyticsPlugin._collectBundleStats (/xxxx/node_modules/@angular-devkit/build-angular/src/webpack/plugins/analytics.js:172:14)
at NgBuildAnalyticsPlugin._done (/xxx/node_modules/@angular-devkit/build-angular/src/webpack/plugins/analytics.js:242:14)
at Hook.eval [as callAsync] (eval at create (/xxx/node_modules/tapable/lib/HookCodeFactory.js:33:10),<anonymous>:14:1)
at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/xxx/node_modules/tapable/lib/Hook.js:18:14)
at /xxx/node_modules/webpack/lib/Compiler.js:468:23
at Compiler.emitRecords (/xxx/node_modules/webpack/lib/Compiler.js:846:39)
at /xxx/node_modules/webpack/lib/Compiler.js:460:11
解决方法
目前,带有 Webpack 5 的 Angular 11 仍处于试验阶段,并且仅与前面提到的 Yarn 一起使用 here。因此,您可能会在这里和那里看到一些警告和错误。我认为现在最好避免使用它进行生产构建。
很可能它会被 Angular 12 正式支持。你可以看到 here @angular-devkit/build-optimizer 库将在 12 版中支持 Webpack 5。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。