在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择:
require
module.exports
exports.foo
import
export
相互使用是否对性能有好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗?
相互使用是否对性能有好处?
请记住,还没有JavaScript引擎本身支持ES6模块。您说自己正在使用Babel。无论如何,Babel都会默认将其转换import并export声明为CommonJS(require/ module.exports)。因此,即使您使用ES6模块语法,但如果在Node中运行代码,也将在后台使用CommonJS。
CommonJS和ES6模块之间存在技术差异,例如,CommonJS允许您动态加载模块。ES6不允许这样做,但是正在为此开发一个API。
由于ES6模块是标准的一部分,因此我将使用它们。