我的NX MonorepoAngular 项目可以在5.78.0版中正确构建,但在升级到5.79.0版后出现以下错误

NX:15.9.2 Angular :15.2.6

 Error: Module parse failed: parser.destructuringAssignmentPropertiesFor is not a function
File was processed with these loaders:
 * ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js
You may need an additional loader to handle the result of these loaders.
TypeError: parser.destructuringAssignmentPropertiesFor is not a function

期望项目正确生成

推荐答案

如果您使用的是带有DefinePlugin的自定义webpack配置,则这看起来像是一个issue,但在webpack 5.79中进行了更改.

我认为这是因为 node 模块中安装了多个冲突的webpack版本;DefinePlugin是从 node 模块中较新版本的webpack加载的,但webpack本身是从Wepback的Angular 构建工具版本加载的,即older.

如果在项目文件夹中运行npm ls webpack,则可以看到以下内容:

> npm ls webpack

+-- @angular-devkit/build-angular@15.2.5
| +-- @angular-devkit/build-webpack@0.1502.5
| | `-- webpack@5.79.0 deduped
...
| `-- webpack@5.76.1

作为一种解决办法,您可以降级到早期版本的webpack:

npm i -D webpack@~5.78.0

或者,您可以运行npm dedupe,这将导致只安装webpack v5.76.1,但这也会删除其他可能不受欢迎的 node 模块.

Angular相关问答推荐

Angular - MSAL用户缺少角色

如何取消针叶林输入的自动填充?

元件不工作时的Angular 17属性 Select 器

Angular 16:CSRF配置:我仍然可以使用HttpXsrfInterceptor和HttpXsrfCookieExtractor类吗?Inteli-J说他们不存在

判断哪个Angular 信号导致了影响

如何使用解析器处理Angular 路由中存储的查询参数以避免任何额外的导航?

Component RegisterComponent模板出现Angular 错误

使用`UrlHandlingStrategy`更改位置

Angular MSAL - 对 Bearer 令牌和 AUD 属性的怀疑

Angular APP_INITIALIZER 中的 MSAL 身份验证

在ngOninit方法中直接VS初始化属性

如何访问父组件中提供的 TemplateRef 内的服务?

最新版本的 Chrome ERR_TIMED_OUT

我应该在 Jasmine 3 中使用什么来代替 fit 和 fdescribe?

如何从父路由的组件访问激活的子路由的数据?

Angular url加号转换为空格

Angular:ViewChild 上未定义 nativeElement

如何提高 Angular2 应用程序的加载性能?

angular2 测试,我如何模拟子组件

如何对 *ngFor 应用数量限制?