TypeScript NPM包的目标体系结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript NPM包的目标体系结构相关的知识,希望对你有一定的参考价值。
我正在研究TypeScript中的一些NPM包,我想知道支持不同目标体系结构的最佳方法。
如果您编译到ES3,您将获得最广泛的支持,但也有额外的兼容性样板(大小,部分无法解析)。如果你的目标是esnext,你基本上没有样板(干净的输出代码!),但支持非常有限。
问题是TypeScript编译器通常不会从node_modules
转换JS代码或任何代码。因此,如果你是编译一个库到ES6,有人想在他们的浏览器应用程序中使用它(针对ES3或ES5),然后他们将无法使用该库。
这里的最佳做法是什么?我应该如何配置我的package.json
和tsconfig.json
?如果图书馆用户需要做某事,这里的首选方式是什么?
非常感谢!
答案
我认为可以妥协。对我来说,在库中使用es6的主要原因是 - 支持汇总的树摇动。为此,package.json有选项module:
"main": "dist/alina-core.js",
"module": "dist/alina-core-es.js",
当用户使用汇总时,无论如何都需要在树摇动后转换到ES5,因此,在module
中指定了ES6版本。但是如果库用户使用旧的构建管道,他将获得main
编译的ES5版本。
以上是关于TypeScript NPM包的目标体系结构的主要内容,如果未能解决你的问题,请参考以下文章