ES6 模块:重新导出为对象

ES6 module: re-export as object

我有一个导出一些函数的模块A:

// moduleA.js
export function f1() {...}
export function f2() {...}

有什么方法可以重新导出模块 B 中模块 A 的所有导出并使其看起来像一个对象:

// moduleB.js
export * as a from 'moduleA';  // pseudo code, doesn't work

以便我可以这样使用它?

// main.js
import {a} from 'moduleB';
a.f1();
a.f2();

暂不支持该语法,但有 a proposal for it.

您现在可以将它与 Babel.js 一起使用,或者只需执行以下操作:

import * as a from '...';
export {a};

file1.js

export let uselessObject = {
  con1 : function () {
    console.log('from file1.js')
  }
}

file2.js

import { uselessObject } from './file1.js'

uselessObject.con2 = function(){
  console.log('from file2.js ')
}

export { uselessObject } from './file1.js'

Index.js

import { uselessObject } from './file2.js'
uselessObject.con1()
uselessObject.con2()

输出

from file1.js
from file2.js