NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
1 | 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 |
1 | npm -v |
如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:
1 | npm install npm -g |
使用淘宝镜像的命令:
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
使用 npm 命令安装模块
1 | $ npm install <Module Name> |
使用 npm 命令安装常用的 Node.js web框架模块 express:
1 | $ npm install express |
安装后express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘express’) 的方式即可。
1 | var express = require('express'); |
全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种:
1 | npm install express # 本地安装 |
如果出现以下错误:
1 | npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 |
解决办法为:
1 | npm config set proxy null |
本地安装
1 | 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。 |
全局安装
1 | 1. 将安装包放在 /usr/local 下或者你 node 的安装目录。 |
使用以下命令来查看所有全局安装的模块:
1 | $ npm list -g |
看某个模块的版本号,可以使用命令如下:
1 | $ npm list grunt |
** package.json **
package.json 位于模块的目录下,用于定义包的属性。如express 包的 package.json 文件,位于 node_modules/express/package.json 内容:
1 | { |
Package.json 属性说明
1 | name - 包名。 |
npm list –depth=0
–depth 表示深度,我们使用的模块会有依赖,深度为零的时候,不会显示依赖模块
卸载模块
1 | $ npm uninstall express |
卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:
1 | $ npm ls |
更新模块
1 | $ npm update express |
搜索模块
1 | $ npm search express |
创建模块
1 | 创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。 |
以上的信息,你需要根据你自己的情况输入。在最后输入 “yes” 后会生成 package.json 文件。
在 npm 资源库中注册用户(使用邮箱注册):
1 | $ npm adduser |
接下来我们就用以下命令来发布模块:
1 | $ npm publish |
如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。
版本号
使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
1 | 如果只是修复bug,需要更新Z位。 |
NPM支持的所有版本号范围指定方式可以查看官方文档。
使用淘宝 NPM 镜像
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
$ npm install -g cnpm –registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了:
$ cnpm install [name]