NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
使用 npm 命令安装模块
npm 安装 Node.js 模块语法格式如下
安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require('express') 的方式就好,无需指定第三方包路径。
全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种
本地安装
- 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
- 2. 可以通过 require() 来引入本地安装的包。
全局安装
- 1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
- 2. 可以直接在命令行里使用。
-》全局方式安装 express
使用 package.json
package.json 位于模块的目录下,用于定义包的属性。来看下 express 包的 package.json 文件,位于 node_modules/express/package.json 内容:
Package.json 属性说明
-
name - 包名。
-
version - 包的版本号。
-
description - 包的描述。
-
homepage - 包的官网 url 。
-
author - 包的作者姓名。
-
contributors - 包的其他贡献者姓名。
-
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
-
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
-
main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
-
keywords - 关键字
卸载模块
卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看
更新模块
搜索模块
创建模块
创建模块,package.json 文件是必不可少的。可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。
接下来可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册)
用以下命令来发布模块:
以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。
npm 版本号形式
X-Y-Z【非负的整数】分别为=》主版本号.次版本号.修订号
** npm 版本号形式 X.Y.Z**
其中 X、Y 和 Z 为非负的整数,且禁止(MUST NOT)在数字前方补零
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
X. 主版本号:当你做了不兼容的 API 修改,
Y. 次版本号:当你做了向下兼容的功能性新增,
Z. 修订号:当你做了向下兼容的问题修正。
1、没有任何符号
1.0.0
完全百分百匹配,当前库/项目必须使用当前版本号,如果和其他依赖使用了相同库不同版本,
会在库的文件夹下建立一个 node_modules 文件夹存放它需要依赖的版本文件。
2、> (大于)
必须大于某个版本
例如 >1.0.0 ,可以使用 1.0.1、1.1.1 、2.0.0 的版本。
3、>=(大于等于)
必须大于或等于某个版本号
例如 >=1.0.0 ,可以使用 1.0.0、1.1.1 、2.0.0 的版本。
4、<(小于)
必须小于某个版本
例如 <2.0.0 ,可以使用 1.0.1、1.1.1 、1.1.9 的版本。
5、<=(小于等于)
必须小于或等于某个版本
例如 <=2.0.0 ,可以使用 1.0.1、1.1.1 、2.0.0 的版本。
6、~
不改变主版本号和次版本号,修订号可以随意更改
例如 ~2.0.0 ,可以使用 2.0.0、2.0.2 、2.0.9 的版本。
7、^
不改变主版本号(主版本号非0),此版本号和修订号可以随意更改
例如 ^2.0.0 ,可以使用 2.0.1、2.2.2 、2.9.9 的版本。
8、x
x位置即后的位置可以随意(不用在主版本号上)。
例如 1.x 可以使用 1.0.1 、1.1.1 、1.9.1的版本。
例如 2.1.x 可以使用 2.1.1、2.1.9的版本
精髓:
NPM 常用命令
-
NPM提供了很多命令,例如
install
和publish
,使用npm help
可查看所有命令。 -
使用
npm help <command>
可查看某条命令的详细帮助,例如npm help install
。 -
在
package.json
所在目录下使用npm install . -g
可先在本地安装当前命令行程序,可用于发布前的本地测试。 -
使用
npm update <package>
可以把当前目录下node_modules
子目录里边的对应模块更新至最新版本。 -
使用
npm update <package> -g
可以把全局安装的对应命令行程序更新至最新版。 -
使用
npm cache clear
可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。 -
使用
npm unpublish <package>@<version>
可以撤销发布自己发布过的某个版本代码。