模块化板块

模块化概念

什么是模块化

就是一个JS文件中可引入另一个JS文件的数据

模块化的好处:

提高了代码的复用性

提高了代码的可维护性

可以实现按需加载

模块规范

CommonJS规范: Node.js中遵守的就是commonjs规范

ES6模块化规范:   前后端通用的模块化规范; Node.js, Vue, React 都能使用

CMD 和  AMD 模块化规范(较少使用): CMD--sea.js, AMD-require.js

UMD 叫做通用模块定义规范 (Universal Module Definition) , 它可以通过运行时或者编译时让同一个代码模块在使用Commonjs, CMD甚至是AMD的项目中运行,它没有自己专有的规范,是集结了 Commonjs,CMD, AMD的规范于一身.

模块作用域

在自定义模块定义的变量,方法等成员,只能在当前模块内被访问,外部文件是访问不到的,这种模块级别的访问限制,叫做模块作用域

模块作用域的好处

防止了全局变量污染,文件依赖等问题产生

Node.js中的模块化

模块分为三种:

内置模块

自定义模块

第三方模块

导出和导入

导出: module.exports, exports

导入:

自定义模块: const  xxx = require(文件的相对位置)

内置模块: const xxx = require(模块的名字)

第三方模块: const xxx = require(模块的名字)

使用require方法加载模块

注意:

使用require()方法加载其他模块时,会执行被加载模块中的代码

使用require()方法加载用户自定义模块期间,可以省略.js后缀名

module对象

在每个.js自定义模块中都有一个module对象,里面存储了和当前模块有关的信息

module.exports作用

在自定义模块中,可以使用module.exports对象,可以将模块内的成员共享出去,供外部使用

外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象

注意:

使用require方法导入模块时,导入的结果,永远以modele.exports指向的对象为准

exports对象

为了简化向外共享成员的代码,Node提供了exports对象,默认情况下,exports和module.exports指向同一个对象,最终共享的结果还是以module.exports指向的对象为准

什么是包

Node.js中的第三方模块称为包

为什么需要包

包是基于内置模块封装出来的,提供了更高级,更方便的API,极大的提高了开发效率

快速创建package.json

npm init -y

注意:

上述命令只能在英文的目录下成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格

运行 npm install 命令安装包的时候,npm 包管理工具会自动把包的名称和版本号,记录到 package.json

package.json:用来记录项目中安装了哪些包.

dependencies作用

用来记录npm install命令安装了哪些包

//安装一个包
npm i xxx
//安装多个包
npm i xxx1 xxx2

卸载包

可以用npm uninstall命令,来卸载指定的包:

注意:

npm uninstall命令执行成功后,会把卸载的包,自动从package.json的dependencies中移掉

上一篇:什么是模块化?


下一篇:webpack常用插件plugin