TypeScript NPM包的目标体系结构

问题描述 投票:0回答:1

我正在研究TypeScript中的一些NPM包,我想知道支持不同目标体系结构的最佳方法。

如果您编译到ES3,您将获得最广泛的支持,但也有额外的兼容性样板(大小,部分无法解析)。如果你的目标是esnext,你基本上没有样板(干净的输出代码!),但支持非常有限。

问题是TypeScript编译器通常不会从node_modules转换JS代码或任何代码。因此,如果你是编译一个库到ES6,有人想在他们的浏览器应用程序中使用它(针对ES3或ES5),然后他们将无法使用该库。

这里的最佳做法是什么?我应该如何配置我的package.jsontsconfig.json?如果图书馆用户需要做某事,这里的首选方式是什么?

非常感谢!

javascript typescript npm package compatibility
1个回答
0
投票

我认为可以妥协。对我来说,在库中使用es6的主要原因是 - 支持汇总的树摇动。为此,package.json有选项module

"main": "dist/alina-core.js",
"module": "dist/alina-core-es.js",

当用户使用汇总时,无论如何都需要在树摇动后转换到ES5,因此,在module中指定了ES6版本。但是如果库用户使用旧的构建管道,他将获得main编译的ES5版本。

© www.soinside.com 2019 - 2024. All rights reserved.