Angular 8 - Lazy loading modules : Error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext' Angular 8 - Lazy loading modules : Error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext' javascript javascript

Angular 8 - Lazy loading modules : Error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'


You are using dynamic import so you have to change your tsconfig.json like this to target your code to esnext module

{  "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"    ]  }}

Also make sure to check tsconfig.app.json dont have module and target config something like this

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


Just want to add my experience to @Tony's answer.After changing tsconfig.json it still showed an error (red underline). Only after reopening the editor (I used VSCode) did I see the red underline disappear.


Just adding to @Tony's anwser, you might also need to do the same (change to "module": "esnext" ) in the tsconfig.app.json. In my case the tsconfig.json was already using esnext as the module but the tsconfig.app.json was still using es2015 and that caused this error.