Commom JS

何为 CommonJS?

CommonJS 是一个有志于构建 JavaScript 生态圈的组织。它有一个 邮件列表,有很多开发者参与其中。 整个社区致力于提高 JavaScript 程序的可移植性和可交换性,无论是在服务端还是浏览器端。

何为 CommonJS 模块?

JavaScript 并没有内置模块系统(反正现在没有),于是 CommonJS 创造了自己的。 传统的 CommonJS 模块如下:

math.js:

exports.add = function() {
  var sum = 0, i = 0, args = arguments, l = args.length;
  while (i < l) {
    sum += args[i++];
  }
  return sum;
};

increment.js:

var add = require('math').add;
exports.increment = function(val) {
  return add(val, 1);
};

program.js:

var inc = require('increment').increment;
var a = 1;
inc(a); // 2

为何封装模块?

仔细看上面的代码,您会注意到 require 是同步的。也就是说, 模块系统需要在 require 方法调用返回 之前,就能判定给定模块是否可用(并初始化它)。

然而,这在浏览器端问题多多。

浏览器端,加载 JavaScript 最佳、最容易的方式是在 document 中插入 <script> 标签。但脚本标签天生异步,传统 CommonJS 模块在此类环境中无法正常加载。

解决思路之一是,开发一个服务器端组件,对模块代码作静态分析,将模块与它的依赖列表一起返回给浏览器端。 这很好使,但需要安装额外的组件,并因此要调整一系列底层架构。

另一种解决思路是,用一套标准模板来封装模块定义:

define(function(require, exports, module) {

  // The module code goes here

});

这套模板代码为模块加载器提供了机会,使其能在模块代码执行之前,对模块代码进行静态分析,并动态生成依赖列表。

为了让静态分析可行,需要遵守一些简单的 规则

把上面例子中的模块封装起来,可得到:

math.js:

define(function(require, exports, module) {
  exports.add = function() {
    var sum = 0, i = 0, args = arguments, l = args.length;
    while (i < l) {
      sum += args[i++];
    }
    return sum;
  };
});

increment.js:

define(function(require, exports, module) {
  var add = require('math').add;
  exports.increment = function(val) {
    return add(val, 1);
  };
});

program.js:

define(function(require, exports, module) {
  var inc = require('increment').increment;
  var a = 1;
  inc(a); // 2
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在web开发中,JavaScript是一种常用的客户端脚本语言。而common.js则是一种用于node.js的模块系统,用于管理JavaScript应用的依赖关系。 当我们在开发node.js项目时,经常会使用到各种各样的库和框架。为了更好地管理应用的依赖关系,我们需要使用common.js模块系统。 common.js模块系统通过提供require函数,使得我们可以方便地引入其他模块的代码。在引入其他模块时,我们可以指定相对路径或者是模块名。 同时,common.js还提供了exports对象,允许我们将模块的部分代码暴露给外部使用。通过这种方式,我们可以实现JavaScript代码的模块化,提高代码的复用性和可维护性。 当我们需要使用common.js模块系统时,通常需要下载和引入common.js库。常见的方式是通过npm安装common.js库,或者是直接下载common.jsjs文件。 总之,common.js模块系统是非常重要的一种工具,可以帮助我们更好地管理JavaScript应用的依赖关系,提高代码的可维护性和复用性。 ### 回答2: Common.js是一种用于Javascript编程的模块化系统。它允许开发人员将Javascript代码划分成不同的模块,从而使代码更加易于维护和重用。 Common.js提供了一个标准化的接口,使得模块可以被其他模块所调用。它通过使用require和module.exports关键字,使得模块之间的依赖关系得以明确定义。 要下载Common.js,可以在浏览器中搜索“Common.js下载”,可以找到一些在Github上的链接,如Common.js和Browserify。这些链接提供了Common.js的源代码和文档,以及一个命令行界面,用来构建和管理应用程序中的模块依赖关系。 除了通过Github下载Common.js外,大多数现代浏览器都已经内置了Common.js的支持。因此,在使用Common.js时,开发人员可以直接使用内置的支持,而无需单独下载框架。 总之,Common.js是一种非常有用的模块化系统,它可以帮助开发人员更加高效地组织和管理Javascript代码。无论是通过Github下载源代码,还是通过内置支持,Common.js都是制作高质量Javascript应用程序的有力工具。 ### 回答3: common.js 是 Node.js 中常用的模块系统,也能在浏览器中使用。它提供了模块化开发的标准,使开发人员可以将代码分割成多个模块,并独立地引入和使用,增强了代码的可维护性和可重用性。 在浏览器中使用 common.js,需要先将模块打包成一个文件,然后使用 script 标签引入。通常使用打包工具如 Webpack 或 Browserify,将所有依赖的模块打包成一个单独的文件,如 bundle.js。在 HTML 文件中引入这个文件即可使用其中的模块。 下载 common.js 可以通过多种途径,例如在 Node.js 中可以使用 npm 命令安装,或在浏览器中通过 CDN 下载。使用 npm 安装 common.js 可以在命令行中运行 npm install commonjs 命令,然后在代码中使用 require() 函数引入模块。在浏览器中,可以在 HTML 中通过 script 标签引入 CDN 中的 common.js 文件。 总之,common.js 是一个十分重要的模块系统,为前后端开发提供了一个标准,使代码更加易于维护和重用。通过合适的打包工具和下载方式,我们能够方便地使用 common.js 进行模块化开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值