1. 模块化
一个js文件可以引入其他的js文件,能使用引入的js文件中的变量、数据,这种特性就成为模块化.
使用模块化开发可以很好的解决变量、函数名冲突问题,也能灵活的解决文件依赖问题
模块化的发展
long long ago
es5不支持模块化,让前端人员蛋疼至极,为了让支持模块化,我们一般会借助第三方库实现.
sea.js www.zhangxinxu.com/sp/seajs/
require,js requirejs.org/
Now
es6原生语法也支持模块化(并不表示浏览器也直接支持模块化--需要单独设置)
Nodejs内部也支持模块化(与es6的模块化有些不同之处)
常见模块化规范
nodejs的模块化
CommonJS规范中主要规定了一下三项:
- 导入其它模块时,统一使用 require() 函数。
- 每个 .js 文件,都是一个独立的模块,模块内的成员都是私有的。
- 在每个 JS 模块中,使用 module.exports 向外共享成员。
es6的模块化
sea.js
require.js
2. npm
npm全称Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。npm不需要单独安装。在安装Node的时候,会连带自动安装npm。npm -v检查安装的情况。- 官网
包(package)与模块关系
npm网站上去下载我们的需要的代码时,它们是以"包"这种结构放在npm网站上的。先来了解下包和模块的关系。
- nodejs中一个模块就是一个单独的js文件
- Node.js 中的第三方模块,又叫做包、第三方包、依赖包
- 包是多个模块的集合。一个模块的功能比较单一,所以一个包一般会包含多个模块。
- npm 管理的单位是包。类似于网站和网页的区别:一个网站一般会包含多个网页。
npm下载使用包
分成三步:
- 初始化项目。npm init 如果之前已经初始化,则可以省略。
- 安装包。 npm install 包名。[注意:保持联网的状态哈]
- 引入包,使用