什么是包
Node.js
中的第三方模块又叫做包
创建包
-
下载包使用
npm
,全名叫做Node Package Manager
(简称npm
包管理工具),这个包管理工具随着Node.js
的安装包一起被安装到了用户的电脑上。 -
可以在终端中执行
npm -v
命令,来查看自己电脑上所安装的npm
包管理工具的版本号
npm
格式化时间的传统做法
// 格式化时间方法.js
// 1. 定义格式化时间的方法
function dateFormat(dtStr) {
const dt = new Date(dtStr)
const y = dt.getFullYear()
const m = padZero(dt.getMonth() + 1)
const d = padZero(dt.getDate())
const hh = padZero(dt.getHours())
const mm = padZero(dt.getMinutes())
const ss = padZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
// 定义补零的函数
function padZero(n) {
return n > 9 ? n : '0' + n
}
module.exports = {
dateFormat
}
// 对时间进行格式化.js
// 导入自定义的格式化时间的模块
const TIME = require('./014 - timeformat')
// 调用方法,进行时间的格式化
const dt = new Date()
// console.log(dt)
const newDT = TIME.dateFormat(dt)
console.log(newDT)
使用第三方包对时间进行格式化
-
使用
npm
包管理工具,在项目中安装格式化时间的包moment
-
使用
require()
导入格式化时间的包 -
参考
moment
的官方API
文档对时间进行格式化
// 1.moment
const moment = require('moment')
// 2.参考 moment 官方 API 文档,调用对应的方法,对时间进行格式化
// 2.1 调用 moment() 方法,得到当前的事件
// 2.2 针对当前的时间,调用 format() 方法,按照指定的格式进行时间的格式化
const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)
npm install 命令安装包
npm i 包的完整名称
npm i moment
node_modules
和 pageage-lock.json
的作用
初次装包完成后,在项目文件夹下多一个叫 node_modules 的文件夹和 package-lock.json 的配置文件,他们的作用是:
- node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包
- package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等
包的语义化版本
npm 规定,在项目根目录中,必须提供一个叫 package.json 的包管理配置文件。用来记录与项目有关的一些配置信息。例如:
- 项目的名称、版本号、描述等
- 项目中用到了哪些包
- 哪些包只在开发期间会用到
- 哪些包在开发和部署时都需要用到
快速创建 package.json
npm
包管理工具提供了一个快捷命令,可以在执行命令时所处的目录中,快速创建 package.json
这个包管理配置文件
npm init -y
注意:
-
上述命令只能在英文的目录下成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格
-
运行
npm install
命令安装包的时候,npm
包管理工具会自动把包的名称和版本号,记录到package.json
中
dependencies 节点的作用
package.json
文件中,有一个 dependencies
节点,专门用来记录您使用 npm install
命令安装了哪些包
// 安装一个包
npm i xxx
// 安装多个包
npm i xxx1 xxx2
一次性安装所有的包
- npm i @版本号
- npm i 包1 包2
- npm i 安装所有包
删除包
- 可以运行 npm uninstall 命令,来卸载指定的包
- 注意:npm uninstall 命令执行成功后,会把卸载的包,自动从 package.json 的 dependencies 中移除掉
//使用 npm uninstall 具体的包名 来卸载包
npm uninstall moment
devDependencies
节点的作用
- 如果某些包只在项目开发阶段会用到,在项目上线后不会用到,则建议把这些包
devDependencies
节点中
与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到
dependencies
节点中
解决包下载慢的问题
-
淘宝在国内搭建了一个服务器,专门把国外官方服务器上的包同步到国内的服务器,然后在国内提供下包的服务。从而极大的提高了下包的速度
-
镜像是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像
切换 npm
的下包镜像源
下包的镜像源,指的就是下包的服务器地址
使用 nrm
切换下载包的服务器
为了更方便的切换下包的镜像源,可以安装 nrm
这个小工具,利用 nrm
提供的终端命令,可以快速查看和切换下包的镜像源