您是否捆绑了库以供用户导入,或让他们导入源?

时间:2016-11-03 04:32:41

标签: javascript ecmascript-6 webpack babeljs

您使用ES6 / 7编写库,因此导入源的人必须使用Webpack + Babel来转换代码。

您可以通过提供已转换的包来解决该问题。但问题是你会捆绑你的依赖关系,用户也可能拥有。然后,依赖关系被冗余地捆绑给用户。

您想保留

import MyLib from 'my-lib'

语法,因此您不希望提供两个导入路径。

你做什么?

2 个答案:

答案 0 :(得分:0)

你应该捆绑你的图书馆。即使用户碰巧使用您使用的相同依赖项,很可能他们将使用不同的版本,这可能不适用于您的库。

如果你想减小捆绑包的大小,你应该使用Rollup.js - 它使用树摇动,这基本上意味着你的捆绑包只包含你实际需要的代码部分。

答案 1 :(得分:0)

在挖掘之后,我找到了一个很好的例子:

https://github.com/reactjs/redux

Redux使用package.json预发布来转换源代码,而不捆绑它。这非常有效,因为它不再需要库的用户使用babel,同时也不会捆绑依赖。