在我在不同项目中构建的共享模块之后,编译为可安装的npm模块。然后,我可以在其他有角项目中使用我的模块。我之前的项目之前和之后的角度6中的可共享组件都是如此。我决定今天将项目升级到angular 7。当我启动该项目时,它可以正常工作并且按预期进行。
但是,在将其打包到npm install-able并安装到其他项目中之后,我的项目因
失败RROR错误:StaticInjectorError(AppModule)[NgIf-> ViewContainerRef]: StaticInjectorError(平台:核心)[NgIf-> ViewContainerRef]: NullInjectorError:没有ViewContainerRef提供程序!
然后我升级了嵌入项目模块以匹配可共享的项目,但是它仍然存在。我注意到commonModule
公开的所有指令都因上述错误而中断。但是,共享项目是独立工作的。即使存在,安装的组件似乎也无法识别commonModule
。下面是我在项目中使用组件的方式。
import { LoaderModule } from "my-angular-components/dist/loader";
@NgModule({
imports: [
BrowserModule,
LoaderModule,
RouterModule.forRoot(ROUTES, { useHash: true })
],
declarations: [],
...
})
还有我的tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"lib": [
"es6",
"es7",
"es2015",
"dom"
],
"module": "es2015",
"moduleResolution": "node",
"noEmitHelpers": true,
"noImplicitAny": false,
"outDir": "lib",
"rootDir": ".",
"sourceMap": true,
"skipLibCheck": true,
"target": "es5",
}
角度7中是否有任何打破commonModule
的变化?如果我将它们都还原为角度6,但不还原为7,则此方法有效。项目也可以独立运行,而无需将其他组件安装为模块。请提供任何帮助。
答案 0 :(得分:1)
在ng服务上使用--aot或--preserve-symlinks标志可能可以解决此问题