我正在尝试在我的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模块。
答案 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"
]
}
对我有用。