Node.js中的第三方模块又叫做包
包是由第三方个人或团队开发出来的,免费供所有人使用
包是基于内置模块封装出来的,提供了更高级,更方便的API,极大的提高了开发效率
搜索包
https://registry.npmjs.org/https://registry.npmjs.org/通过 npm -v 查看自己包的版本号
在项目中安装包
npm i 包的完整名称
如何进行日期初始化,旧方法:
// 定义格式化时间的方法
function dateFormat(dtStr) {
const dt = new Date(dtStr);
const y = dt.getFullYear();
const m = padZero(dt.getMonth() + 1);
const d = padZero(dt.getDay());
const h = padZero(dt.getHours());
const min = padZero(dt.getMinutes());
const s = padZero(dt.getSeconds());
return `${y}-${m}-${d} ${h}:${min}:${s}`;
}
// 补零函数
function padZero(n) {
return n > 9 ? n : '0' + n;
}
module.exports = {
dateFormat
}
再创建js文件:
// 导入自定义的格式化时间模块
const TIME = require('./06-日期初始化');
// 调用方法进行时间的格式化
const dt = new Date();
// console.log(dt);
TIME.dateFormat(dt);
const newDT = TIME.dateFormat(dt);
console.log(newDT);
使用 day.js 包初始化日期:
// 导入需要的包
const dayjs = require('dayjs');
const dt = dayjs().format('YYYY-MM-DD HH:mm:ss');
console.log(dt);
完成!
初次装包后项目文件夹下多了一个 node_modules 的文件夹和 package-lock.json 的配置文件
其中 node_modules 文件夹用来存放所有已安装到项目中的包 , require() 导入第三方包时,就是从这个目录中查找并加载包
package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等
注意:程序员不要手动修改 node_modules 或 package-lock.json 文件中的任何代码,npm 包管理工具会自动维护它们
默认情况下,使用 npm install 命令安装包的时候,会自动安装最新版本的包。如果需要安装指定版本的包,可以在包名之后,通过 @ 符号指定具体的版本,例如:
npm i dayjs @1.10.1
新命令会覆盖原先安装的包
包的语义化版本规范
包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 2.24.0
其中每一位数字所代表的的含义如下:
第1位数字:大版本
第2位数字:功能版本
第3位数字:Bug修复版本
包管理配置文件
npm规定,在项目根目录中,必须提供一个叫做package.json 的包管理配置文件。用来记录与项目有关的一些配置信息。例如:
1. 如何记录项目中安装了哪些包
在项目根目录中,创建一个叫做 package.json 的配置文件,即可用来记录项目中安装了哪些包。从而方便剔除 node_module 目录之后,在团队成员之间共享项目的源代码。
注意:今后在项目开发中,一定要把 node_modules 文件夹,添加到 .gitignore 忽略文件中。
2. 快速创建 package.json
npm包管理工具提供了一个快捷命令,可以在执行命令时所处的目录,快速创建 package.json这个包管理配置文件:
// 作用:在执行命令所处的目录中,快速创建 package.json 文件
npm init -y
注意:
3. dependencies 节点
package.json 文件中,有一个 dependencies 节点,专门用来记录您使用 npm intall 命令安装了哪些包,如果某些包在开发和项目上线之后都需要用到,则建议把这些包放到 dependencies 中
4. 一次性安装所有的包
当我们拿到一个剔除了 node_modules 的项目之后,需要先把所有的包下载到项目中,才能将项目运行起来。可以运行 npm install 或 npm i 命令 一次性安装所有的依赖包
npm install
执行 npm instal 命令时,npm包管理工具会首先读取 package.json 中的 dependencies 节点,读取到记录的所有依赖包名称和版本号之后,npm 包管理工具会把这些包一次性下载到项目中
5. 卸载包
可以运行 npm uninstall 命令, 来卸载指定的包,npm uninstall 命令卸载包成功后,会自动从package.json 中的 dependencies 节点下删除包
6. devDependencies 节点
如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDenpendencies 中
// 安装指定的包,并记录到 devDenpendcies 节点中
npm i 包名 -D
完整写法: npm install 包名 --save-dev
7. 解决下包速度慢的问题
切换npm的下包镜像源(指下包的服务器地址)
// 查看当前的下包镜像源
npm config get registry
// 将下包的镜像源切换为淘宝镜像源
8. nrm
为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具 ,快速查看和切换下包的镜像源
// 通过 npm 包资源管理器,将 nrm 安装为了全局可用的工具
npm i nrm -g
// 查看所有可用的镜像源
nrm ls
// 将下包的镜像源切换为 taobao 镜像
nrm use taobao
9. 包的分类
项目包 :被安装到项目的 node_modules 目录中的包,都是项目包
项目包又分两类:
开发依赖包:被记录到devDenpendencies 节点中的包,只在开发过程中使用
核心依赖包:被记录到denpendencies 节点中的包,在开发期间和项目上线之后都会用到
npm i 包名 -D // 开发依赖包
npm i 包名 -D // 核心依赖包
全局包:在执行npm install 命令时,如果提供了 -g 参数, 则会把包安装为全局包
全局包会安装到 C:\Users\Lenovo\AppData\Roaming\npm\node_modules 目录下
npm i 包名 -g # 全局安装指定的包
npm install 包名 -g # 卸载全局安装的包
注意:
10. i5ting_toc
i5ting_toc 是一个可以把 md 文档转为 html 页面的小工具,使用步骤如下:
// 将 i5ting_toc 安装为全局包
npm install -g i5ting_toc
// 调用 i5ting_toc, 轻松实现 md 转 html 的功能
i5ting_toc_toc -f 要转换的md文件路径 -o
11. 规范的包结构
一个规范的包,它的组成结构,必须符合以下 3 点要求: