ES6 如何从一个文件导出所有项目

ES6 how to export all item from one file

我想从另一个文件导出一个文件的所有方法。

目前我正在这样做,而且它有效。如何将以下两个合并为 1 个导出表达式

import  * as db  from './web/query';
export default db;

我试过下面写的 1 行导出,但都失败了

export *   from './web/query';  //==error
export *  as default  from './web/query';  //==error
export *  as {default}  from './web/query';  //==error
export from from './web/query'; //== error
export default from './web/query'; //== error

错误的意思是

import db from '../db/index';

db 在这里未定义。然而,第一种方法有效

文件“./web/query”的内部看起来像

export function foo(){}
export function baar(){}

How can I merge below two into 1 export expression

你不能。

ES2015(和 ES2016)不提供允许您从文件中导入所有命名导出并将对象(将这些作为其属性)导出为单个语句中的默认值的语法。

你不能在 ES2016 中使用。要创建模块命名空间对象,您需要在当前模块范围内为其提供一个标识符(如 db),然后重新导出它。没办法了。

然而,第 1 阶段 proposal 可以添加您正在尝试的 export * as default from … 语法。

您可以使用 export * from '<FILE>';.

导出另一个文件的命名导出
// a.js
export const one = '1';
export const two = '2';
// b.js
export * from './a.js';

// c.js
import { one, two } from './b.js';