错误:StaticInjectorError(AppModule)[NgIf-> ViewContainerRef]:将角度6升级到7后

问题描述 投票:2回答:1

在我在不同项目中构建的共享模块之后,编译为可安装的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",
    }

[C7]角7中是否有任何变化?如果我将它们都还原为角度6,但不还原为7,则此方法有效。项目也可以独立运行,而无需将其他组件安装为模块。请提供任何帮助。

angular angular7
1个回答
0
投票

在ng服务上使用--aot或--preserve-symlinks标志可能解决了此问题

© www.soinside.com 2019 - 2024. All rights reserved.