ES6`export*from import`?

Jor*_*ein 44 javascript ecmascript-6 babeljs

是否有使用ES6或ES7或babel的语法,这将允许我轻松地将许多子文件组捆绑在一起?

例如,给出:

./action_creators/index.js
./action_creators/foo_actions.js
./action_creators/bar_actions.js
Run Code Online (Sandbox Code Playgroud)

让index.js导入foo和bar动作,然后重新导出它们,所以我可以

import {FooAction, BarAction} from './action_creators/index.js'
Run Code Online (Sandbox Code Playgroud)

如果我要更改我自己组织对象的文件,我不想记住/更改引用.

Tim*_*imo 75

是的,ES6支持直接导出导入的模块:

export { name1, name2, …, nameN } from …;

export {FooAction, BarAction} from './action_creators/index.js'
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下语法重新导出导入模块的所有导出*:

export * from …;

export * from './action_creators/index.js';
Run Code Online (Sandbox Code Playgroud)

有关MDN的更多信息.

  • 这个[回答](/sf/ask/2879781831/?noredirect=1&lq=1)为我工作`export {default as foo} from './foo';`相反. (35认同)
  • @Qwerty你当前不能像那样导出命名空间.有关它的提议,请参阅https://github.com/tc39/proposal-export-ns-from.在此期间你可以做的一件事就是:```import*as Something from'./ something'; export {Something}``` (7认同)
  • 我来这里寻找为什么我不能使用 `export * 作为来自......的东西......哈哈哈 (5认同)
  • 这不起作用'export*'来自'./ something'`.有任何想法吗? (3认同)
  • 如果“export * from ...”的两个后续行导出同名的命名函数,会发生什么?我的意思是,如果 `export * from 'a';` 和 `export * from 'b'`,则 `a` 和 `b` 都定义一个具有相同名称的函数并将其导出,例如: `export function fn() { ... }`... (3认同)

Ger*_*niz 47

默认导出为Default

export {default} from './something';
Run Code Online (Sandbox Code Playgroud)

默认导出为Named

export {default as foo} from './something';
Run Code Online (Sandbox Code Playgroud)

命名导出为默认

export {foo as default} from './something';
Run Code Online (Sandbox Code Playgroud)

命名导出为Named

export {foo} from './something';
Run Code Online (Sandbox Code Playgroud)

将导出命名Renamed

export {foo as bar} from './something';
Run Code Online (Sandbox Code Playgroud)

  • 怎么样 `export * from './something';` (4认同)