啥是模块化?
一个js文件引入另一个js文件,且能使用另一个的变量,数据等,就称之为模块化。
ps:使用模块化开发可以很好的解决变量、函数名冲突问题.
常规的模块化规范
1.node.js的模块化规范
2.es6的模块化
3.CMD 和 AMD 模块化规范(已成为历史,不推荐使用)
nodejs中的模块分类
核心模块
就是nodejs自带的模块,在安装完nodejs之后,就可以随意使用啦。相当于学习js时使用的Array对象。 例:fs, http, querystring, path
自定义模块
程序员自己写的模块。就相当于我们在学习js时的自定义函数。
第三方模块
其他程序员写好的模块。nodejs生态提供了一个专门的工具npm来管理第三方模块,后面我们会专门讲到。
相当于别人写好的函数或者库。例如JQuery库,arttemplate等。
关于自定义模块的使用步骤
- 定义模块。就是创建一个js文件, 对外导出我们希望导出的内容。
- 使用模块。在需要使用的地方去导入模块文件。
commonjs的模块化规范
CommonJS 规范中主要规定了以下 3 项内容:
导入其它模块时,统一使用 require() 函数。
每个 .js 文件,都是一个独立的模块,模块内的成员都是私有的。
在每个 JS 模块中,使用 module.exports 向外共享成员。
示例:需求:在一个文件夹创建两个js文件
在2里面定义好函数与变量最后记得用module.exports语法导出即可成功调用
了解npm和包
npm
npm 全称 Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。
npm 不需要单独安装。在安装Node的时候,会连带自动安装npm。
npm -v检查安装的情况。
包(package)与模块的关系
- nodejs中一个模块就是一个单独的js文件
- Node.js 中的第三方模块,又叫做包、第三方包、依赖包
- 包是多个模块的集合。一个模块的功能比较单一,所以一个包一般会包含多个模块。
- npm 管理的单位是包。类似于网站和网页的区别:一个网站一般会包含多个网页。
npm下载使用包
npm 公司提供了一个非常著名的搜包网站:https://www/npmjs.com/
分成三步:
- 初始化项目。npm init 如果之前已经初始化,则可以省略。
- 安装包。 npm install 包名。
- 引入包,使用
第一步:初始化项目
这里提到的项目并不是某个具体的功能,只是要创建一个空文件夹即可(注意,不要起中文名字哈)。
进入到项目所在的根目录下,启动小黑窗(建议:按下shift键,点击右键,在弹出的菜单中选择 “在此处打开命令行”)
npm init --yes
// --与yes之间没有空格, -- 与init之间有空格
// 或者是 npm init -y
第二步:安装包
npm 这个超市中有现成的写好的代码,我们想下载来用,这个过程就是安装包,或者叫下包、装包
安装命令: npm i 包名
第三步:使用包
当我们已经下载好一个包之后,就可以像使用核心模块一样去使用它。
格式是:const 常量名 = require('包名') 这个格式与引入核心模块的格式是一样的。