Angular应用程序:es2015的es2020迁移



我刚刚将我的应用程序更新到Angular 12,并尝试使用es2020。出于某种原因,当我的应用程序构建时,我仍然会遇到错误,因为该应用程序似乎仍在尝试使用es2015:

node_modules/typescript/lib/lib.es2015.promise.d.ts:33:34
[ng]     33     new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
[ng]                                         ~~~~~~~~~~~~~~~~~~~~~~~~~
[ng]     An argument for 'value' was not provided.

我已经更新了tsconfig.json以反映es2020:

{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"inlineSources": true,
"declaration": false,
"sourceRoot": "/",
"module": "es2020",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2020",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2020",
"dom"
]
},
"exclude": [
"node_modules",
"**.*.spec.ts",
"plugins/**"
]
}

编辑:

当我提供我的应用程序时,我还会看到以下内容:

[ng] Compiling @angular/core : es2015 as esm2015
[ng] Compiling @ionic-native/core : module as esm5
[ng] Compiling @angular/common : es2015 as esm2015
[ng] Compiling @angular/cdk/collections : es2015 as esm2015
[ng] Compiling @ionic-native/splash-screen : module as esm5
[ng] Compiling @ionic-native/barcode-scanner : module as esm5
[ng] Compiling @ionic-native/status-bar : module as esm5
[ng] Compiling @angular/platform-browser : es2015 as esm2015
[ng] Compiling @angular/cdk/platform : es2015 as esm2015

最后,我已经在package.json中使用Typescript 4.3.5了。

但自从做出改变后,我还没有明确安装任何新的打字机。我下一步该怎么做才能允许更改为es2020?

请记住,当您以ES2020为目标时,您会排除任何iOS 13.3及以下版本的用户(很可能是在使用???.时(。虽然该版本已有2年多的历史,但检查服务器日志以了解有多少用户/客户仍在使用旧浏览器(并可能带来收入(是很重要的。

不幸的是,由于Safari与iOS版本绑定,如果有人不更新iOS,他们也会落后于Safari和ES版本(是的,这甚至适用于在iOS上使用Chrome/Firefox的人(。

关键是在做之前要确保你真的想做这件事

我个人为两者创建了ts.config.ES2020.appts.config.ES2015.app文件,并且在开发过程中使用angular.json中的配置文件来选择2020。

这意味着我会在我的开发浏览器中看到像??这样的现代东西,但今年上半年我们从Safari 13.3用户那里获得的85美元有望翻倍!

相关内容

  • 没有找到相关文章

最新更新