0

我有 index.js 和以下代码在客户端上运行良好,重新导出在其他三个模块中定义的函数:

export * from './validators';
export * from './comparators';
export * from './transforms';

但我想在 NodeJS 中使用这些。至少,我们当前的版本似乎不知道这种 ES6 语法。我知道,在定义函数的模块中,如何使用

module.exports = {
    func1,
    func2
}

但是在重新导出模块中使用的相应语法是什么?

4

2 回答 2

1

一个简单但有效的解决方案是

Object.assign(module.exports,
    require('./validators'),
    require('./comparators'),
    require('./transforms'),
);

这类似于 ES6 所做的,但不支持更新导出的成员。为了更接近,您需要使用 getter 或代理。

当然还有一个很好的选择:只需编写 ES6 语法并使用知道如何将其正确转换为 ES5 的编译器!

于 2020-02-11T18:18:44.863 回答
0

感谢@Bergi,该解决方案奏效了。我也刚刚制定了以下几乎相同的版本,但我的版本有更多的输入:

const validators = require('./validators');
const comparators = require('./comparators');
const transforms = require('./transforms');

module.exports = {
    ...validators,
    ...comparators,
    ...transforms
};
于 2020-02-11T19:03:53.753 回答