假设我使用export
语句创建了一个由一堆es2015模块文件组成的库,我怎样才能将它们打包在一个.js文件中以便提供库?应保留es2015模块,以便该库的用户仍可使用import
- 语句导入导出的内容。
即想象有两个模块:
foo.js:
export default class Foo {...}
bar.js:
export default class Bar{...}
我想将它们打包在一起......让我们说magic-lib.js
,然后我们就像这样:
使用魔法-lib.js:
import Foo from 'magic-lib'
...
怎么可以这样做?
顺便说一句:我已经尝试使用rollup-js将我的lib打包到一个文件中,但是我无法获得仍然使用exports
的结果。除此之外,我最喜欢的解决方案是一些香草js ......
答案 0 :(得分:0)
如果有人感兴趣,我现在可以使用rollup.js与Options.format= 'es'
和插件rollup-plugin-multi-entry
捆绑包。我的错误是我使用了export default
并期望这可以在单个捆绑文件中使用多个导出。 rollup-plugin-mutliy-entry并没有将它们保存在最终的bundle中。但是使用非默认导出有效。
因此,从更高级别来看,我现在为rollup.js创建的每个模块都有一个js文件。这个module-js文件由几个类组成。只导出那些应该从库外部使用的类(公共接口)。
Addionally我将所有module-js-files捆绑在一个大的app-js文件(汇总汇总)中,该文件与options.format = 'iife'
捆绑在一起,仅用作可执行应用程序包。浏览器。
-Module-A.js
|- class InternalTool
|- export class A
-Module-B.js
-Module-C.js
-App.js
|- Module A
|- Module B
|- Module C
通过这种方式,我可以创建可以组合到应用程序的强分离和可重用模块。