ToB企服应用市场:ToB评测及商务社交产业平台

标题: NodeJs的模块化和包 [打印本页]

作者: 来自云龙湖轮廓分明的月亮    时间: 2023-3-21 19:52
标题: NodeJs的模块化和包
模块化的基本概念

什么是模块化?

模块化是解决一个复杂问题时,自顶向下逐层把系统划分为若干个模块的过程,编程中,就是遵守一定规则,把一个大文件拆成独立并相互依赖的多个小模块。
模块化规范

使用什么样的语法格式引用模块和向外暴露成员
CommonJS规范

Node.js 遵循了 CommonJS 的模块化规范。其中:
ES6 模块化规范

是浏览器端与服务器端通用的模块化开发规范。它的出现极大的降低了前端开发者的模块化学习成本,开发者不需再额外学习 AMD、CMD 或 Commonjs 等模块化规范。
ES6 模块化规范中定义:
在Node.js中设置ES6模块化规范:
Node.js中的模块化

Node.js中模块的分类

加载模块

文章以CommonJS规范为例
  1. //内置模块
  2. const http = require('http')
  3. //自定义模块
  4. const custom = require('./custom.js')//后缀名可以省略
  5. //第三方模块
  6. const moment = require('moment')
复制代码
注意:当使用require加载时,会执行被加载模块的代码
模块作用域

在自定义模块中定义的变量和方法等成员,只能在当前模块被访问,防止全局变量污染的问题
  1. //username.js
  2. const username='张三'
  3. function sayHello(){
  4.     console.log("大家好,我是"+username)
  5. }
  6. //test.js
  7. const custom=require('./username')
  8. console.log(custom)//输出:{} 空对象
复制代码
向外共享成员

module对象

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

在自定义模块中,可以使用它将模块内的成员共享出去,当使用require()方法导入时,得到的就是module.exports所指的对象
  1. //username.js
  2. module.exports.username = '张三'
  3. module.exports.sayHello = function () {
  4.     console.log("大家好,我是" + username)
  5. }
复制代码
注意:
exports对象

为了简化,Node提供了exports对象。默认情况下,exports和module.exports指向同一个对象。
  1. exports.username= '张三'
  2. module.exports={
  3.     gender:'男',
  4.     age:22
  5. }
  6. //{gender:'男',age:22}
复制代码
  1. module.exports.username= '张三'
  2. exports={
  3.     gender:'男',
  4.     age:22
  5. }
  6. //{username:'张三'}
复制代码
npm和包



在Node.js中第三方模块叫做,来自于第三方个人或团队,免费且开源。
包基于内置模块封装出来,提供了更高级、更方便的API,极大的提高了开发效率。
包的下载

使用npm包管理工具(Node Package Manager)
  1. npm install 包的完整名称
  2. npm i 包的完整名称 -g//全局安装
  3. npm install moment@2.22.2
  4. npm uninstall 包的完整名称
复制代码
node_modules文件夹用来存放所有已安装到项目中的包
package-lock.json配置文件用来记录node_modules目录下每一个包的下载信息
包的版本号:“点分十进制”
第一位数字:大版本
第二位数字:功能版本
第三位数字:Bug修复版本
(只要前面的版本号增长,后面归零)
包管理配置文件

npm规定,项目根目录中,必须提供一个package.json的包管理配置文件
  1. npm init -y//快速新建package.json
复制代码
dependencies节点

专门记录使用npm insatll命令安装了哪些包
  1. npm install
  2. //执行该命令,npm会读取package.json中的dependencies节点,一次性下载所有的包
复制代码
devDependencies节点

如果某些包只在开发中用到,建议安装在devDependencies节点
  1. npm i 包的完整名称 -D
  2. npm i 包的完整名称 --save-dev
复制代码
包下载慢的问题

切换npm的下包镜像源
  1. npm config get registry //查看当前镜像源
  2. npm config set registry=xxxxxxxxxx//切换镜像源
复制代码
nrm工具
  1. npm i nrm -g
  2. nrm ls//查看所有镜像源
  3. nrm use taobao//切换镜像源
复制代码
包的分类

项目包和全局包、开发依赖包和核心依赖包
规范的包结构




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4