Angular 12 - 未捕获的 TypeError:无法读取 isModuleWithProviders 中未定义的属性(读取‘ngModule’)
2021-09-09
7924
core.js:27296 Uncaught TypeError: Cannot read properties of undefined (reading 'ngModule')
at isModuleWithProviders (core.js:27296)
at expandModuleWithProviders (core.js:27290)
at Array.map (<anonymous>)
at Function.get (core.js:26927)
at getNgModuleDef (core.js:1117)
at assertNgModuleType (core.js:1296)
at compileNgModuleFactory__POST_R3__ (core.js:29073)
at PlatformRef.bootstrapModule (core.js:29324)
at Module.14431 (main.ts:11)
at __webpack_require__ (bootstrap:19)
我有一个由主项目 (app) 使用的自定义库。在将项目更新到 Angular 12 之前,一切都很好。
我按照 此处 的更新说明进行操作,适用于主项目和自定义库
当我提供服务时没有编译错误,当我使用 --prod 标志构建时也没有构建错误。但是,当我尝试从浏览器本地评估应用程序时,我收到上述错误。
我已尝试对其进行调试。这让我找到了这些解决方案, 这里 和 这里 。有了这些,我能够将错误追溯到从自定义库导入的模块。但这就是我陷入困境的地方。
请问有人可以协助修复错误并运行应用程序吗?
App.module
import { UtilsModule } from '@utils/utils.module';
import { PipesModule } from '@pipes/pipes.module';
...
@NgModule({
imports: [
BrowserModule,
...
PipesModule,
UtilsModule
]
})
tsconfig.json
{
"paths": {
...
"@pipes/*": [
"./node_modules/custom-library/src/pipes/*"
],
"@utils/*": [
"./node_modules/custom-library/src/utils/*"
],
...
}
...
}
package.json
{
...
"dependencies": {
...
"custom-library": "url-to-repository-branch"
...
}
...
}
该库使用此方法安装 这里
1个回答
经过一天的故障排除,我发现了以下内容...
问题
我们的项目中有几个未发布的角度库。
在本地开发期间,一切都很好。然而,在部署到生产环境中时,
tsconfig.json
中定义的路径不知何故丢失了。
解决方案
-
从库创建构建
npm build [project-library]
-
从新文件夹创建包
npm package [path-to-build-library]
-
npm install 该库,基于 tgz 文件:
-
npm i "file:/./tmp/library-to-import.0.0.1.tgz"
-
- 从包导入组件时,必须从构建和安装的包中完成,而不是从源代码中完成
这解决了我的问题。
Cafn
2021-10-11