Javascript ES6模块:作为对象重新导出

Javascript ES6模块:作为对象重新导出,javascript,module,ecmascript-6,Javascript,Module,Ecmascript 6,我有一个模块A,它导出了一些函数: // moduleA.js export function f1() {...} export function f2() {...} 有没有办法在moduleB中重新导出moduleA的所有导出并使其看起来像一个对象: // moduleB.js export * as a from 'moduleA'; // pseudo code, doesn't work 这样我就可以这样使用它了 // main.js import {a} from 'modu

我有一个模块A,它导出了一些函数:

// moduleA.js
export function f1() {...}
export function f2() {...}
有没有办法在moduleB中重新导出moduleA的所有导出并使其看起来像一个对象:

// moduleB.js
export * as a from 'moduleA';  // pseudo code, doesn't work
这样我就可以这样使用它了

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

该语法尚不受支持,但有

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

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

file1.js

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

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

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

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

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

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

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

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

export { uselessObject } from './file1.js'
import { uselessObject } from './file2.js'
uselessObject.con1()
uselessObject.con2()
输出

from file1.js
from file2.js

对于任何关注的人来说,该提案仍处于第一阶段。它不包括在
babel preset env
babel preset latest
中。您需要单独安装:原始方案已重新绘制,替换为:这将需要更改
file1
file2
的工作代码的结构。。解决目的。。你还想写些好的/改进的代码吗。。。我将从Felix的两行代码中删除这篇文章,我几乎无法理解工作解决方案是什么样子的,所以我写了这篇文章,其中包含了工作代码。