【问题标题】:Error: StaticInjectorError(AppModule)[NgIf -> ViewContainerRef]: After upgrading angular 6 to 7错误:StaticInjectorError(AppModule)[NgIf -> ViewContainerRef]:将角度 6 升级到 7 后
【发布时间】:2018-12-10 09:01:39
【问题描述】:

在我在不同项目中构建的共享模块之后,编译成可安装的 npm 模块。然后我可以在其他 Angular 项目中使用我的模块。以前在 Angular 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,则此方法有效。项目也可以独立工作,而无需将其他组件安装为模块。请,任何帮助将不胜感激。

【问题讨论】:

    标签: angular angular7


    【解决方案1】:

    在 ng serve 上使用 --aot 或 --preserve-symlinks 标志可能会解决这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2018-08-18
      相关资源
      最近更新 更多