在我 Build 不同项目的共享模块之后,编译成可安装的npm模块 . 然后,我可以在其他角度项目中使用我的模块 . 之前的角度6中的可共享组件是我以前的项目 . 我今天决定将我的项目升级为角7 . 当我启动项目时,它工作正常并且符合预期 .

但是,在我将它打包成npm install-able并将其安装在其他项目中后,我的项目失败了

RROR错误:StaticInjectorError(AppModule)[NgIf - > ViewContainerRef]:StaticInjectorError(Platform:core)[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,这是有效的 . 项目也可独立工作,而无需另外安装组件作为模块 . 请,任何帮助将不胜感激 .