+ 是一个依赖于 node 环境运行的工具
=> 如果你想运行 npm 这个工具
=> 你的电脑上一定要有 node 环境
+ 专门管理所有和 js 相关的第三方内容
npm 的安装
+ 不需要独立安装
+ 当你安装好 node 以后, npm 自动安装完毕
npm 的检测
+ 打开命令行, 目录无所谓
+ 输入指令: $ npm --version
+ 出现版本号, 表示安装完毕
npm 卸载
+ 不需要独立写在
+ 当你卸载 node 的时候, 就自动卸载了 npm
场景模拟:
+ 一个完整的项目, 你用了多少个第三方, 分别是什么
+ 每一个第三方的版本号是多少
+ 方案1: 逐个翻 html 文件, 记录一下一共引入了多少个第三方
+ 方案2: 在项目开始的时候, 准备好一个 文档
=> 每下载一个第三方, 就在文档内记录一些信息
=> jquery: 3.3.6
=> swiper: 5.24.1
=> pullpage: 1.1.0
1. npm 初始化
+ 打开命令行, 切换目录到你的项目根目录
+ 输入指令: $ npm init
=> 会进入询问界面
=> package name: 你的项目名称, 不要用中文
=> version: 版本号
=> description: 描述说明
=> git repository: 关联的git仓库地址
=> keywords: 项目关键字
=> author: 项目的作者
+ 填写完毕以后, 会在当前目录下得到一个叫做 package.json 的文件
=> 改文件就是你的项目描述文件
=> 将来你在这个目录下下载第三方的时候
=> 会自动被记录到这个 package.json 文件内
+ 简写指令
=> $ npm init -y
=> $ npm init --yes
=> 所有的内容都按照默认值填写, 生成一个 package.json 文件
=> 注意: package name 会按照你的文件夹名称生成, 所以你的文件夹名称不能用中文或者空格
2. 使用 npm 下载第三方
+ 打开命令行, 切换到 项目根目录
+ 输入指令: $ npm install 包名
=> 简写指令: $ npm i 包名
+ 等待结果
+ 下载完毕以后, 会在当前目录下生成一个叫做 node_modules 的文件夹
=> 该文件夹内就有你刚才下载的内容
+ 注意:
=> 以前版本的 npm, 如果你没有初始化, 是没有关系的, 一样会下载在当前目录下
=> 最新版本的 npm, 如果你没有初始化, 那么默认下载在你电脑的 系统 目录下, 不会下载在当前目录下
-> 只有 npm 初始化以后, 才能下载在当前目录下
3. 使用 npm 下载指定版本的第三方包
+ 打开命令行, 切换到 项目根目录
+ 输入指令: $ npm install 包名@版本号
=> 简写指令: $ npm i 包名@版本号
+ 等待结果
+ 注意:
=> 一个项目内, 一个同名包只能留存一个版本
=> 当你下载一个其他版本的时候, 会自动帮你把之前的版本清除掉
4. 查看 npm 上可以下载的某一个包的所有版本
+ 打开命令行, 目录无所谓
+ 输入指令: $ npm view 包名 versions
+ 给你看到该包所有的发布的可下载的版本
5. 卸载 npm 安装的第三方包
+ 打开命令行, 切换到 项目根目录
+ 输入指令: $ npm uninstall 包名
=> 简写指令: $ npm un 包名
+ 会把你下载的包相关文件删除, 并且自动删除 package.json 文件内的记录
6. 一次性下载所有项目相关第三方
+ 打开命令行, 切换到 项目根目录
+ 要保证你的项目目录内有 package.json 文件
+ 输入指令: $ npm install
=> 简写指令: $ npm i
+ 会把 package.json 文件内记录的所有第三方包一次性下载完毕'
7. npm 清除缓存
+ 打开命令行, 目录无所谓
+ 输入指令: $ npm cache clear -f
+ 清除下载的路径记录
+ 强力清除本地下载缓存
=> 手动删除
=> 我的电脑 -> 系统盘符 -> users -> 你自己的名字 -> AppData(有可能是个隐藏文件夹) -> roaming
=> 删除 npm-cache 文件夹就行
nrm
+ 是一个工具
+ 专门管理 npm 这个工具的下载地址的
+ 程序员给 下载地址 这个玩意起了一个名字: 镜像源地址
下载:
+ 是一个全局工具, 一个电脑只需要下载一次
+ 也是一个基于 node 环境使用的工具
+ 可以使用 npm 来下来 nrm 工具
+ 打开命令行, 目录无所谓
+ 输入指令:
=> win: $ npm install --global nrm
=> OS: $ sudo npm install --global nrm
检测:
+ 打开命令行, 目录无所谓
+ 输入指令: $ nrm --version
卸载:
+ 打开命令行, 目录无所谓
+ 输入指令:
=> win: $ npm uninstall --global nrm
=> OS: $ sudo npm uninstall --global nrm
首次下载:
+ 最新版本的 nrm 出现一些问题
+ 需要对 nrm 进行一些修改
+ 找到 nrm 的安装目录下找到 cli.js 文件第 17 行
+ 把本身的 17 行代码注释掉
+ 写上
=> const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
nrm 的常用指令
1. 检测所有镜像源地址的网络延迟
+ 打开命令行, 目录无所谓
+ 输入指令: $ nrm test
npm ---- 1044ms
yarn --- 1114ms
cnpm --- 550ms
* taobao - 100ms
nj ----- Fetch Error
npmMirror 837ms
edunpm - 4467ms
+ 中划线前面是镜像源地址名称
+ 中划线后面是该镜像源地址的网络延迟
+ 前面带有 星号 的表示你正在使用的镜像源地址
2. 切换镜像源地址
+ 打开命令行, 目录无所谓
+ 输入指令: $ nrm use 镜像源地址名称
+ 作用: 切换 npm 这个工具以后下载第三方包的镜像源地址