走进node.js - NPM

222 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情

往期推荐

# 走进 node.js
# 走进 node.js - 起步
# 走进 node.js - 模块

node.js - NPM 学习目标

  • npm 的常用命令
  • 安装本地包和全局包的区别
  • package.json 文件作用

npm

npm 相信大家都不陌生,在项目中经常会使用到npm下载一些常用第三方插件

npm 全称 Node Package Manager,它的诞生是为了解决 Node 中第三方包共享的问题。和浏览器一样,由于都是 JavaScript,所以前端开发也使用 npm 作为第三方包管理工具。例如大名鼎鼎的 jQuery、Bootstrap 等都可以通过 npm 来安装。所以官方把 npm 定义为 JavaScript Package Manager

npm 有两层含义。一层含义是 Node 的开放式模块登记和管理系统,网址为npmjs.org。另一层含义是 Node 默认的模块管理器,是一个命令行下的软件,用来安装和管理 Node 模块。

npm不需要单独安装。在安装 Node 的时候,会连带一起安装npm

查看本地安装的 npm 的版本号。 npm --version

升级 npm。npm install npm --global

常用命令

# 在项目中初始化一个 package.json 文件
# 凡是使用 npm 来管理的项目都会有这么一个文件
npm init

# 跳过向导,快速生成 package.json 文件
# 简写是 -y
npm init --yes

# 一次性安装 dependencies 中所有的依赖项
# 简写是 npm i
npm install

# 安装指定的包,可以简写为 npm i 包名
# npm 5 以前只下载,不会保存依赖信息,如果需要保存,则需要加上 `--save` 选项
# npm 5 以后就可以省略 --save 选项了
npm install 包名

# 一次性安装多个指定包
npm install 包名 包名 包名 ...

# 安装指定版本的包
npm install 包名@版本号

# npm list命令以树型结构列出当前项目安装的所有模块,以及它们依赖的模块。
npm list

# 加上global参数,会列出全局安装的模块
npm list -global

# npm list命令也可以列出单个模块
npm list 包名

# 安装全局包
npm install --global 包名

# 更新本地安装的模块
# 它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装
npm update [package name]

# 升级全局安装的模块
npm update -global [package name]

# 卸载指定的包
npm uninstall 包名

# 查看包信息
# view 别名:v、info、show
npm view 包名

# 查看使用帮助
npm help

# 查看某个命令的使用帮助
# 例如我忘记了 uninstall 命令的简写了,这个时候,可以输入 `npm uninstall --help` 来查看使用帮助
npm 命令 --help

全局命令行工具

每个模块可以“全局安装”,也可以“本地安装”。“全局安装”指的是将一个模块安装到系统目录中,各个项目都可以调用。一般来说,全局安装只适用于工具模块,比如eslintgulp。“本地安装”指的是将一个模块下载到当前项目的node_modules子目录,然后只有在项目目录之中,才能调用这个模块。

安装全局包必须加 --global 参数

切换 npm 镜像源

npm install jquery --registry=https://registry.npm.taobao.org npm config set registry https://registry.npm.taobao.org

npm 存储包文件的服务器在国外,有时候会被墙,速度很慢,所以我们需要解决这个问题。国内淘宝的开发团队把 npm 在国内做了一个备份,网址是:npm.taobao.org/。 最简单的方式就是我们在安装包的时候告诉 npm 你去哪个服务器下载。例如使用淘宝的 npm 镜像源下载 jquery:

npm install jquery --registry=https://registry.npm.taobao.org

但是每次手动往后面加 --registry=https://registry.npm.taobao.org 很麻烦,所以我们可以通过修改配置文件的方式来处理解决。

# 配置到淘宝服务器
npm config set registry https://registry.npm.taobao.org

# 查看 registry 是否配置正确
npm config get registry

只要经过了上面命令的配置,则你以后所有的 npm install 都会使用你配置的 registry 下载。

下一节我们讲一下配置文件 package.json