我应该如何在 Angular 中使用 ES2020?
How should i use ES2020 in Angular?
这是我的 tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
}
}
当我将 lib 和目标版本更改为 es2020 时,出现以下错误:
tsconfig.json(13,15): error TS6046: Argument for '--target' option must be: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'esnext'.
我认为 es2020
直到 Angular 9 才被添加为目标。因此,如果您使用的版本低于该版本,我认为它无法正常工作。
esnext
以最新支持的功能为目标,因此它们的工作方式应该非常相似。
es2020
支持是 introduced in TypeScript 3.8。
您必须升级到 Angular 9.1(或更高版本)才能使用 TypeScript 3.8。
我正在使用 Angular 的 11.2.14
版本,但仍然无法在 tsconfig.json
中使用 "target": "ES2020"
。
我的构建失败于:
Error: ./src/app/shared/validators/form.validators.ts 10:21
Module parse failed: Unexpected token (10:21)
File was processed with these loaders:
- ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js
- ./node_modules/@ngtools/webpack/src/index.js
You may need an additional loader to handle the result of these loaders.
...
根据这个GitHub issue,错误与WebPack(我的版本4.44.2)有关。 WebPack 5 将支持 ES2020
。
这是我的 tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
}
}
当我将 lib 和目标版本更改为 es2020 时,出现以下错误:
tsconfig.json(13,15): error TS6046: Argument for '--target' option must be: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'esnext'.
我认为 es2020
直到 Angular 9 才被添加为目标。因此,如果您使用的版本低于该版本,我认为它无法正常工作。
esnext
以最新支持的功能为目标,因此它们的工作方式应该非常相似。
es2020
支持是 introduced in TypeScript 3.8。
您必须升级到 Angular 9.1(或更高版本)才能使用 TypeScript 3.8。
我正在使用 Angular 的 11.2.14
版本,但仍然无法在 tsconfig.json
中使用 "target": "ES2020"
。
我的构建失败于:
Error: ./src/app/shared/validators/form.validators.ts 10:21 Module parse failed: Unexpected token (10:21) File was processed with these loaders:
- ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js
- ./node_modules/@ngtools/webpack/src/index.js
You may need an additional loader to handle the result of these loaders. ...
根据这个GitHub issue,错误与WebPack(我的版本4.44.2)有关。 WebPack 5 将支持 ES2020
。