npm命令详解

本文介绍nodejs的包管理器npm及其简单命令。

npm介绍与安装

npm,是node package manager的缩写,从名称上理解,node 包管理器。已集成在nodejs中。Node.js 是运行在服务端的 JavaScript环境。

进入https://nodejs.org/zh-cn/,建议下载长期维护版,安装完后在cmd中使用node -v、npm -v即可查看是否安装成功,安装成功会输出版本号。

命令

每个命令都会更新 package.json 文件。

类似于npm install可以缩写为npm i,常用命令可以这样缩写。

-g是-global,加上是全局安装,安装在nodejs目录下的node_modules,不加-g的话是将安装包放在 node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下新建 node_modules 目录。

命令 缩写 解释
npm install 模块名 npm i 安装模块
npm list npm ls 查看已安装模块,加上-g查看安装到全局的模块
npm uninstall 模块名 npm un 卸载模块
npm update 模块名 npm up 更新模块
npm outdated 检查模块更新,Wanted为在不破坏现有代码情况下,可以更新到的版本号。
npm install -f 有时候报错的时候会提示该问题,npm 会使用默认值为你创建 package.json 文件,不再询问任何问题。
npm install -S或npm install –save 包将被添加到 dependencies,在安装模块时,只有当事人知道安装了哪些模块,如果换另外一个人来看这个项目,是不会知道这个项目安装了哪些模块。 使用 --save 可以在安装模块时,同时将安装的模块信息记录在 package.json 文件中,这样第三个人再看这个项目时,就可以直接看 package.json 文件来了解这个项目依赖了哪些包。
npm config set registry https://registry.npm.taobao.org 设置国内源

package.json 中包版本 ~ 与 ^ 说明

package.json 中会记录很多包的版本号,前面大多出现 ^ 和 ~ 符号,表示某个包的版本号取值范围,包的版本号在这个范围之内都是可以的。

假定某个包的版本是 1.4.0

  • ~1.4.0表示:>=1.4.0 && < 1.5.0说明:小版本不变,补丁号可以取最大值。

  • ^1.4.0表示:>=1.4.0 && < 2.0.0说明:大版本号不变,小版本号可以取最大值。

使用淘宝 NPM 镜像

大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

1
$ npm install -g cnpm --registry=https://registry.npmmirror.com

这样就可以使用 cnpm 命令来安装模块了:

1
$ cnpm install [name]

更多信息可以查阅:npmmirror 中国镜像站

nvm

Nvm 是一款命令行工具,用于安装 Node。

要安装 Node 可以下载安装包进行安装。(不推荐)

但是 Node 是有版本属性的,就像 JAVA 里有 jdk1.6、jdk1.8 的区别一样。

那么如果你的项目需要使用不同版本的 Node,你总不能下载多个安装包,然后在使用哪个版本的 Node 时将之前版本的 Node 卸载掉。

nvm 和 npm 同样是命令行工具,有这类似的概念:

npm —— 管理包(包括增删改查包)

nvm —— 管理 Node 版本(包括下载 Node,切换 Node 版本)

参考链接

  1. https://www.runoob.com/nodejs/nodejs-npm.html
  2. Npm 入门 | FRONTEND-TUTORIAL (dunwu.github.io)
  3. 4.2 npm 安装模块_w3cschool
  4. 5.2 npm 版本知识总结_w3cschool
作者

BaldStrong

发布于

2022-02-22

更新于

2022-02-22

许可协议

评论