错误:从ng 11更新到ng 16时模块构建失败(从./node_modules/css-loader/dist/cjs.js)

h6my8fg2  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(128)

TL;DR:更新Angular应用程序时,出现了一个奇怪的错误。如何解决?
内容:
经过很长一段时间,我终于将我的Angular 11更新为Angular 16应用程序。
当我沿着走的时候,我得到了一些错误,这些错误都是可以修复的。
一个错误阻塞了我的构建,我甚至不知道从哪里开始。

./projects/configurator-frontend/src/lib/configurator-frontend.module.less?ngResource - Error: Module build failed (from ./node_modules/css-loader/dist/cjs.js):
Error: The 'exportType' option with the 'css-style-sheet' or 'string' value requires the 'esModules' option to be enabled

一些事实:

  • 我在做一个图书馆
  • 它与解析库主模块的LESS文件有关
  • 如果我从模块styleUrls中删除less文件,它会工作得很好(所有其他的less文件都能正确处理)
  • 如果我清空文件,错误仍然出现
  • 如果我复制的内容到另一个文件,它的作品(所以没有连接到较少的文件本身
  • 如果我创建一个新的NG项目,并在模块级别上引入更少,错误再次出现

我个人的想法:

  • 似乎webpack中的某些设置不正确(我没有偏离ng默认行为-没有自定义Webpack等)。

我尝试的是:

  • 删除node_modules + package-lock.json
  • 清除npm缓存
  • 更新Node + npm
  • 已更新所有依赖项

我对webpack/node/npm不是很深入,所以我甚至不确定从哪里开始。有什么想法可以解决这个问题吗?
一些附加信息:

Angular CLI: 16.2.5        
Node: 18.18.0              
Package Manager: npm 10.2.0
OS: win32 x64              

Angular: 16.2.8
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1602.5
@angular-devkit/build-angular   16.2.5
@angular-devkit/core            16.2.5
@angular-devkit/schematics      16.2.5
@angular/cli                    16.2.5
@schematics/angular             16.2.5
ng-packagr                      16.2.3
rxjs                            7.8.1
typescript                      5.1.6
zone.js                         0.13.3
ou6hu8tu

ou6hu8tu1#

为了解决这个问题,您不允许将您的less文件称为:
[moduleName].module.less
它必须被称为任何东西,但后缀.module.less
(As一个个人的附加物:这是我见过的最令人不安的行为之一)

相关问题