我有两个用TypeScript编写的应用程序:
这里的主要兴趣点是我们的库(一个单独的npm软件包),它具有在两个应用程序中使用的一些常用功能(作为它们的依赖项)。面临的挑战是该库当前将其目标设置为ES5,但是我想像本地类一样开始使用ES6功能,而不必将它们编译为ES6应用程序的ES5。
我能做些什么:
我没有为库的已编译源提供一个dist/
目录,而是可以将其同时编译为ES5和ES6(并具有dist/es5/
和dist/es6/
之类的东西)因此,每个应用程序在导入模块时都可以选择其版本。这可能解决了问题,但对我来说感觉并不那么漂亮。例如,我想在IDE中导入符号会很麻烦,因为每个导出的变量或类型都存在两次。
或者,我只能将库编译为ES6,但是在第一个项目中,我需要开始使用babel将库的ES6代码转换为ES5。这可能也解决了问题,但这也意味着应用程序的devstack变得复杂(甚至可能更慢?)。
所以我的问题是:这里的最佳实践是什么?什么是行业标准?
npm注册表中的库始终被编译为ES5,并且整个行业还没有开始使用ES6,这是常见的吗?还是可以在ES6中编写,编译和发布库,这很普遍,但是在没有ES6的环境中,总是希望您在应用程序中使用babel吗?还是我缺少第三种方法?
谢谢!