导入自定义模块时出现“无法读取未定义的属性‘ɵmod’”
我已构建并发布了自定义组件库,保存在 Artifactory 中,可以安装到我的应用中吗?安装库后,应用加载时出现以下错误。就像什么都没有呈现一样,只有这个错误消息......
core.js:1139 Uncaught TypeError: Cannot read properties of undefined (reading 'ɵmod') at getNgModuleDef (core.js:1139) at recurse (core.js:25270) at recurse (core.js:25281) at registerNgModuleType (core.js:25266) at new NgModuleFactory$1 (core.js:25380) at compileNgModuleFactory__POST_R3__ (core.js:28993) at PlatformRef.bootstrapModule (core.js:29239) at Module.zUnb (main.ts:11) at webpack_require (bootstrap:79) at Object.0 (main.js:11)
我已经看到 stackoverflow 声明通过添加“返回模块”......但我不知道它需要添加到哪个文件。
{ path: 'auth', loadChildren: () => import('./auth/auth.module') .then((a) => { return a.AuthModule; }); },
并且我已经确认在构建库时打包了正确的文件夹,如
stackoverflow
此外,这是我的导入语句,我觉得它是错误的。但是如果我使用“@myOrg_amf/amf-library”,就会出现编译错误
感谢您就此提供的任何建议。
import { AmfLibraryModule, MaterialModule } from '@myOrg_amf/amf-library/projects/amf-library/src/public-api';
我遇到了同样的错误,并且尝试了上述解决方案(我稍微简化了语法,但只需检查如果在
then()
块中使用花括号,是否实际返回了模块:
{ path: 'auth', loadChildren: () => import('./auth/auth.module').then((a) => a.AuthModule) },
对于那些不知道如何放置它的人,它应该放在
app.routing.module.ts
文件中,或者您设置路由的任何位置:
const routes: Routes = [
...
{ path: 'auth', loadChildren: () => import('./auth/auth.module').then((a) => a.AuthModule) },
...
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
这样,只有当匹配的路由处于活动状态时,才会加载模块。 有关更多信息,请参阅 https://angular.io/guide/lazy-loading-ngmodules
无论如何,就我而言,我总是遇到相同的错误,唯一的区别是现在当我在该路线上导航时它会出现,而不是在应用程序启动时显示,这意味着当 angular 尝试加载模块时会抛出该错误。
我尝试直接在导入网址中指向模块(而不是此处显示的 public-api),但这并没有解决问题。
可能我在我的库中做了一些奇怪的事情 :/ 希望这至少对第一个疑问有所帮助
更新:
我从
projects/my-project
文件夹(其中包含
src
等)调用
npm publish
,而应该从
dist/my-project
调用。现在错误消失了。