早期的JS中,是没有模块化的概念的,这一情况直到09年的Node.js横空出世时有了好转,Node.js将JS作为服务端的编程语言,使得JS不得不寻求模块化的解决方案。 模块化概念 在JS中的模块是针对单个文件的,即一个文件是一个模块,要使用这个模块就加载该文件即可。 CommonJS node.j ...
分类:
Web程序 时间:
2017-05-24 18:32:22
阅读次数:
194
AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思。它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS。 模块将被异步加载,模块加载不影响后面语句的运行。所有依赖某些模块的语句均放置在回调函数中。 AMD 是 RequireJS ...
分类:
其他好文 时间:
2017-05-24 12:50:38
阅读次数:
307
1、CommonJs规范的出发点:JS没有模块系统、标准库较少、缺乏包管理工具;为了让JS可以在任何地方运行,以达到Java、C#、PHP这些后台语言具备开发大型应用的能力; 2、在CommonJs规范中: 一个文件就是一个模块,拥有单独的作用域; 普通方式定义的变量、函数、对象都属于该模块内; 通 ...
分类:
Web程序 时间:
2017-05-24 12:32:59
阅读次数:
107
欢迎小伙伴们为 前端导航仓库 点star https://github.com/pfan123/fr...前端导航平台访问 CommonJS 和 AMD 是用于 JavaScript 模块管理的两大规范,前者定义的是模块的同步加载,主要用于 NodeJS ;而后者则是异步加载,通过 RequireJ ...
分类:
Web程序 时间:
2017-05-22 00:17:28
阅读次数:
379
前面的话 Node组织了自身的核心模块,也使得第三方文件模块可以有序地编写和使用。但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用。而在模块之外,包和NPM则是将模块联系起来的一种机制。在介绍NPM之前,不得不提起CommonJS的包规范。JavaScript不似Java或 ...
分类:
Web程序 时间:
2017-05-21 12:50:26
阅读次数:
325
如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已。 现在就看看吧,这些规范到底是啥东西,干嘛的。 一、CommonJS CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希 ...
分类:
Web程序 时间:
2017-05-21 12:45:25
阅读次数:
172
模块加载机制被称为CommonJS规范。在这个规范下,每个.js文件都是一个模块,它们内部各自使用的变量名和函数名都互不冲突,例如,hello.js和main.js都申明了全局变量var s = 'xxx',但互不影响。 一个模块想要对外暴露变量(函数也是变量),可以用module.exports ...
分类:
Web程序 时间:
2017-05-20 12:20:46
阅读次数:
241
require发现参数字符串指向一个目录以后,会自动查看该目录的package.json文件,然后加载main字段指定的入口文件。如果package.json文件没有main字段,或者根本就没有package.json文件,则会加载该目录下的index.js文件或index.node文件。 转载: ...
分类:
Web程序 时间:
2017-05-15 19:41:38
阅读次数:
187
前面的话 Nodejs的模块是基于CommonJS规范实现的,可不可以应用在浏览器环境中呢? 第二行math.add(2, 3),在第一行require('math')之后运行,因此必须等math.js加载完成。也就是说,如果加载时间很长,整个应用就会停在那里等。这对服务器端不是一个问题,因为所有的 ...
分类:
Web程序 时间:
2017-05-14 10:54:36
阅读次数:
227
前言: Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性。本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是globa ...
分类:
Web程序 时间:
2017-05-13 14:25:41
阅读次数:
192