CommonJS和ESM的区别
7 views
7 views
Node
出来的。因为是出自于社区,因此语法层面等官方东西无法改变,只能在API
层面上改动,所以开发出来一个require
函数。 ESM:官方标准。是官方新增了语法,属于语法层面的改动。 ## 时态 CMJ:运行时,将模块放在函数中,exports
、module
、__dirname
、__filename
等其实都是这个函数的参数。 比如这段代码: ESM:运行时(import(xxx)
) + 编译时(静态: import xx from xx;
)。 所以这样的代码是无效的: js import x from 变量;
因为其编译时的静态特点,可以在运行代码之前就能确定依赖关系,因此可以用来tree shaking
。 > commonJS中可以这样: > js > if (xxx) { > require("xxx") > } >
> 而ESM
中是绝对不行的。