使用多个文件在 ES6 模块中创建命名空间。馊主意?

Creating namespaces in ES6 module with multiple files. Bad idea?

我有一个包含多个文件的库,这些文件当前通过 Gulp 连接到一个文件中。这些文件中的每一个都设置了主库对象 Rune 的 属性,因此 color.js 将设置 Rune.Colormath.js 将设置 Rune.Math,并且等等。

这显然是老派,所以我想使用 ES6 模块重写它,并使用 Gulp、Browserify 和 Babel 来创建编译包。

但是,我最终会得到一个命名空间消失的编译库,人们需要 import color from "rune" 才能使用颜色模块。

所以,我正在考虑这样做是我的主要模块文件:

import color from "./color"

const Rune = {
  Color: color
}

export default Rune;

这是个糟糕的主意吗?该模块已在主文件中使用,因此我看不出它有任何缺点。

Is that a terrible idea?

拥有一个库的入口点并从那里导出所有方法是个不错的主意。但是,我会坚持使用 ES6 导入和导出:

// Rune.js
export {default as color} from './color';

现在客户可以使用:

import {color} from 'rune';

import * as Rune from 'rune';

导入他们需要的东西。