关于webpack:commonJS-和-ES6-模块的区别

7次阅读

共计 521 个字符,预计需要花费 2 分钟才能阅读完成。

commonJS 和 ES6 模块的区别

  • CommonJS 输入的模块是一个值的拷贝,ES 模块输入的是一个模块的援用;
  • CommonJS 模块输入的是值的拷贝,一旦输入之后,无论模块外部怎么变动,都无奈影响之前的援用,
  • commonJS 会缓存加载的模块,前面间接从缓存外面取值;
  • ESModule import 一个模块后生成一个援用链接,在脚本真正执行时才会依据这个援用链接去模块外面取值,模块外部的原始值变了 import 加载的模块也会变。
  • CommonJS 运行时加载,ESModule 编译阶段援用。
  • CommonJS 在引入时是加载整个模块,生成一个对象,而后再从这个生成的对象上读取办法和属性。
  • ESModule 不是对象,而是通过 export 暴露出要输入的代码块,在 import 时应用动态命令的办法援用指定的输入代码块,并在 import 语句处执行这个要输入的代码,而不是间接加载整个模块。
  • 裸露形式的区别,commonJS modules.exports = {module};ES6 export default module 或者 export module
  • 引入形式 commonJS require(“module”) es6 import {moduleName} from “module”
正文完
 0