ES6相当于Node.js需要函数调用

什么是最短的ES6等价物require函数调用?

 module.exports = function(app) {...}; require('./routes')(app); 

换句话说,在ES6模块中是否有一个相当于一行的内容?

我刚开始深入研究ES6,但我相信这将是:

 import * as routes from './routes'; 

假设./routes是一个ES6模块导出的东西。

这可以立即使用,如下所示:

 import * as routes from './routes'; doAThing( routes.myVar, routes.myMethod() ); 

如果模块只有一个命名导出,则仍然是两行导入,然后调用:

 import { name } from './routes'; name(); 

这对于任何数量的输出都是一样的:

 import { name1, name2 } from './routes'; name1(); name2(); 

更好的导入是如上所述:

 import * as routes from './routes'; routes.foo(); routes.bar(); 

我使用了这个与ES6模块相关的Axel Rauschmayer文章中的“推荐”格式,但取决于模块导出的内容,您的导入语句可能会有所不同:

从fs导入*作为fs; // 推荐的

我觉得这(1行导入,1行调用)语法清晰可读,所以我喜欢它。 对于某些人来说,这可能看起来不幸。 但是,底线是在ES6中没有一行导入/调用