本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/07/15/%E4%BB%80%E4%B9%88%E6%98%AFCommonJS/
摘要
本文主要讲述了:
- 什么是 CommonJS
- 示例
正文
什么是 CommonJS
JavaScript 一直被局限在浏览器端,但人们希望它能被用于更大的场景。
于是,Mozilla 工程师 Kevin Dangoor 在 2009 年 1 月发起了 ServerJS 项目。该项目基于 JavaScript,通过新增 API,致力于在浏览器端之外(例如:服务器端)为 JavaScript 构建模块生态系统。
在 ServerJS 项目开展得如火如荼之际,项目组又将眼光重新聚焦回浏览器端,期望浏览器端也能享受到 ServerJS 项目带来的红利,从而一统浏览器端和服务器端。
2009 年 8 月,基于更大的野心,为了凸显自身的普适性,项目组更名为 CommonJS(简称 CJS)并沿用至今。
需要注意的是:CommonJS 项目组本身只负责制定 CommonJS 规范,并不负责具体的实现。CommonJS 规范目前仍在进一步完善,并没有完工。
nodejs 实现了部分 CommonJS 规范。
2013 年 5 月,npm 的作者 Isaac Z. Schlueter 宣称 nodejs 正在放弃遵循 CommonJS 规范。
示例
此示例可以运行在 nodejs 上。
math.js
1 | exports.add = function () { |
increment.js
1 | var add = require('./math').add; |
program.js
1 | var inc = require('./increment').increment; |
program.js
作为入口,引用了increment.js
模块中的increment()
,并将1
传递给了increment()
。increment.js
引用了 math.js 模块中的add()
,并定义了一个模块,这个模块拥有increment()
。increment()
将val
和1
一起传递给了add()
。math.js
定义了一个模块,这个模块拥有add()
,add()
用于将所有参数累计求和。
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/07/15/%E4%BB%80%E4%B9%88%E6%98%AFCommonJS/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/07/15/%E4%BB%80%E4%B9%88%E6%98%AFCommonJS/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。