1. ホーム
  2. javascript

[解決済み] Angular 8 - Lazy Loading モジュール : エラー TS1323: 動的インポートは '--module' フラグが 'commonjs' または 'esNext' のときのみサポートされます。

2022-04-26 05:43:07

質問

Angular 7からAngular 8にアップデートしたところ、モジュールの遅延ロードのエラーが発生しました。

アンギュラアップグレードガイドにあるオプションを試しました。

以下のように変更しました。

以前

    loadChildren: '../feature/path/sample- 
                         tage.module#SameTagModule'

その後

   loadChildren: () => import('../feature/path/sample- 
                      tags.module').then(m => m.CreateLinksModule)

error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' または 'esNext' を使用してください。

解決方法は?

ダイナミックインポートを使用しているので、tsconfig.jsonを次のように変更して、コードをターゲットにする必要があります。 esnext モジュール

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "esnext", // add this line
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

また、tsconfig.app.jsonにモジュールとターゲットの設定がないことを確認してください。

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "src/test.ts",
    "src/**/*.spec.ts"
  ]
}