這裏是我想要實現一個簡單的例子:導出多個文件作爲單個模塊中節點JS
foo.js:
module.exports.one = function(params) { */ stuff */ }
bar.js:
module.exports.two = function(params) { */ stuff */ }
stuff.js:
const foo = require('Path/foo');
const bar = require('Path/bar');
我想做的事:
otherFile.js:
stuff = require('Path/stuff');
stuff.one(params);
stuff.two(params);
我不想做[在stuff.js]
module.exports = {
one : foo.one,
two: bar.two
}
的我附帶的解決方案是:
const files = ['path/foo', 'path/bar']
module.exports = files
.map(f => require(f))
.map(f => Object.keys(f).map(e => ({ [e]: f[e] })))
.reduce((a, b) => a.concat(b), [])
.reduce((a, b) => Object.assign(a, b), {})
或醜陋/短:
module.exports = files
.map(f => require(f))
.reduce((a, b) => Object.assign(a, ...Object.keys(b).map(e => ({ [e]: b[e] }))));
感覺 「的hackish」。
有沒有更乾淨的方法來做到這一點?
該OP沒有使用ES6轉換器。 – 2017-07-31 02:09:25