最近开始接触web编程,一上来就看到一堆关于module 的信息, commomJS module 和 ES module 直接给我看懵了。网上搜一下,总结一下。

大概意思就是CommonJS 先出现,用在nodejs 编程中。这玩意在浏览器中支持的不太好,随着时间的推移浏览器代码也需要模块化呀,于是 ES module 就出现了。

ES module 逐渐强大,大有一统天下的趋势,于是最新的nodejs 中也开始支持 ES module.

说了演变历史,在再说一下具体的区别:

CommonJs module:

  • 一次只能导出一个变量;
  • 在nodejs 中使用;
  • 用require 语句调用

 

ES modules:

  • 一次可以导出多个变量;
  • 在浏览器中使用;
  • 用import 语句导入;

这些区别在 前端的导入导出:「CommonJS」「ES Module」模块化规范 - 掘金 (juejin.cn) 这个文章中讲的很好。

 

既然有这两个模块,那html是否可以调用CommonJs 模块呢,又如何调用呢;

参考文件 :ES6和commonJs模块化规范的混用_webpack能不能同时输出commonjs和es规范的文件-CSDN博客

越来越多的模块同时发布成支持commonJS 和ES6 规范的文件; 在package.json 中:

{
    "main": "aaa.js",
    "module": "aaa.module.js"
}

如果使用require,那么它就用aaa.js,如果你用import,那么它就用aaa.module.js;

 

posted on 2024-03-05 14:06  lazybee  阅读(177)  评论(0编辑  收藏  举报