我创建了一个库,其中包含带有组件的模块。
我的图书馆public_api.ts具有此功能:
export * from './src/app/modules/my-mod-1/my-mod-1.module';
现在,此模块具有可在module.ts文件中导出并声明的组件
@NgModule({
imports: [
...
],
declarations: [
MyOneComponent
],
exports: [
MyOneComponent
]
})
现在,我使用ng-packagr创建软件包,并使用.tgz文件中的npm install将其导入另一个项目中。
当我在开发模式下运行该组件时,它可以与所有生命周期挂钩正常工作。
但是,当我使用ng build
创建构建时,它不会调用生命周期挂钩。尽管它确实在组件的html文件中打印了所有内容,但是似乎缺少了组件类代码。
在运行开发模式时,我签入了vendor.js
文件,在那里我可以轻松找到组件类代码(实际上,我搜索了打印在组件类代码中的console.log代码,该代码正在显示在那里)
但是由build命令生成的main.xxxxxx.js中缺少相同的代码。而且build命令根本不会创建vendor.js文件,因为main.js中包含了vendor.js
所以问题是项目构建中未包含库类代码,为什么会发生这种情况?
项目中有太多代码,我想不到应该在此处粘贴代码的哪些部分来帮助您理解问题。所以请让我知道我还要在这里复制什么。
谢谢
答案 0 :(得分:1)
我从这里得到了一些帮助: https://github.com/angular/angular-cli/issues/11394
似乎:
1)您应该将库使用的所有组件和模块导出到user-id
文件中。
2)显然删除了public_api.ts
文件夹,然后通过node_modules
重新安装似乎可行,库中的缓存文件似乎已损坏
现在我的应用程序也可以在生产中使用!