ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模块化板块

2021-10-06 19:58:12  阅读:175  来源: 互联网

标签:npm exports 板块 模块化 require module js 模块


模块化概念

什么是模块化

就是一个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中移掉

标签:npm,exports,板块,模块化,require,module,js,模块
来源: https://blog.csdn.net/weixin_59960489/article/details/120627974

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有