无法在Angular 5中的tsconfig中使用模块esnext进行动态模块导入

时间:2018-05-25 09:07:43

标签: angular angular5

我正在尝试在我的angular 5应用程序中进行动态导入工作。根据此github issue,评论说使用module: esnext应该可以使其正常工作。这是我的配置

"compilerOptions": {
  "outDir": "./dist/out-tsc",
  "noEmitOnError": true,
  "target": "es2016",
  "module": "esnext",
  "experimentalDecorators": true,
  "emitDecoratorMetadata": true,
  "sourceMap": true,
  "moduleResolution": "node",
  "declaration": false,
  "lib": [
    "es2016",
    "dom"
  ]
}

注意:lib中没有es2016会给我带来错误,因为我在代码中使用了.find().includes

编译时出现此错误

error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.

当我module: esnext时,不确定为什么它仍然会说ECMA2015模块。

3 个答案:

答案 0 :(得分:2)

我想出来了。原来这是一个愚蠢的错误,我在根文件夹中编辑tsconfig.json,而tsconfig.app.json文件夹中有另一个src覆盖了我的设置。

答案 1 :(得分:0)

更新tsconfig.app.json并可以正常工作

{
    "extends": "../tsconfig.json",
    "compilerOptions": {
        "outDir": "../out-tsc/app",
        "target": "es2016",
        "module": "esnext",
        "baseUrl": "",
        "types": []
    },
    "exclude": [
        "test.ts",
        "**/*.spec.ts"
    ]
}

答案 2 :(得分:-1)

我配置了tsconfig.app.json

{
    "extends": "../tsconfig.json",
    "compilerOptions": {
        "outDir": "../out-tsc/app",
        "target": "es2016",
        "module": "esnext",
        "baseUrl": "",
        "types": []
    },
    "exclude": [
        "test.ts",
        "**/*.spec.ts"
    ]
}

对我有用。