将Angular从8更新到9后,延迟加载的模块警告

时间:2020-05-22 09:10:32

标签: javascript angular lazy-loading angular8 angular9

在Angular更新之后,所有延迟加载的模块均返回警告:

Error: [path/to/module/module-name.ts] is missing from the TypeScript
compilation. Please make sure it is in your tsconfig via the 'files'
or 'include' property.

我的返回模块数组的函数:

export function manifests(prefix = '') {
    return [
        {
            loadChildren: () => import(prefix + '/path/to/a.module').then(m => m.AModule),
            path: 'a',
        },
        {
            loadChildren: () => import(prefix + '/path/to/b.module').then(m => m.BModule),
            path: 'b',
        },
    ]
}

但是,如果我用静态数组替换该函数,一切似乎都很好。为什么?

我的tsconfig.app.json:

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts",
    "src/zone-flags.ts",
  ],
  "include": [
    "src/**/*.d.ts",
  ]
}

2 个答案:

答案 0 :(得分:0)

就我而言,由于某种原因,导入语句中的文件名被大写了。

例如,假设我有以下.ts文件:companySearchModel.ts

export class CompanySearchModel {
    //some properties
}

使用companySearchModel的另一个文件中的import语句如下所示:

import { CompanySearchModel } from './models/CompanySearchModel.ts'

看起来应该像这样:

import { CompanySearchModel } from './models/companySearchModel.ts'

不确定为什么会发生这种情况,但是希望这会对您有所帮助。

答案 1 :(得分:0)

您可以在包含属性的tsconfig中添加要排除的路径

"exclude": [
    "path/to/module"
  ]