1. NPM使用介绍
npm,全称为Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。npm之于Node.js,就像pip之于Python,gem之于Ruby,pear之于PHP。
此外,npm还提供了很多其他的功能,例如:
- 版本管理:npm使用语义化版本控制(semver),可以轻松地管理和控制包的版本。
- 依赖管理:npm可以自动处理包之间的依赖关系,确保安装的包之间没有冲突。
- 脚本运行:npm可以在安装过程中运行自定义脚本,以便进行构建、测试等操作。
- 安全性:npm提供了严格的安全措施,包括代码签名和漏洞扫描等,以确保下载的包是安全的。
- 社区支持:npm拥有庞大的用户社区和丰富的资源,可以轻松地找到所需的包和解决方案。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
$ npm -v
2.3.0
如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:
$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.14.2 /usr/local/lib/node_modules/npm
如果是 Window 系统使用以下命令即可:
npm install npm -g
使用淘宝镜像的命令:
npm install -g cnpm --registry=https://registry.npmmirror.com
2. 常用命令
-
npm init
- 功能:初始化一个新的npm项目,生成一个package.json文件。
- 示例:在命令行中执行
npm init
,然后根据提示输入项目信息,如项目名称、版本、描述等。
-
npm install
- 功能:根据项目中的package.json文件自动下载项目所需的全部依赖。
- 示例:在命令行中执行
npm install
,npm会自动读取package.json文件并安装所需的依赖。
-
npm install 包名 --save-dev
- 功能:安装的包只用于开发环境,不用于生产环境,会出现在package.json文件中的devDependencies属性中。
- 示例:执行
npm install gulp --save-dev
,会将gulp作为开发依赖安装,并添加到package.json的devDependencies中。
-
npm install 包名 --save
- 功能:安装的包需要发布到生产环境的,会出现在package.json文件中的dependencies属性中。
- 示例:执行
npm install express --save
,会将express作为生产依赖安装,并添加到package.json的dependencies中。
-
npm list
- 功能:查看当前目录下已安装的node包。
- 示例:在命令行中执行
npm list
,会显示当前项目已安装的所有包及其依赖关系。
-
npm list -g
- 功能:查看全局已经安装过的node包。
- 示例:在命令行中执行
npm list -g
,会显示全局已安装的所有包及其依赖关系。
-
npm update 包名
- 功能:更新指定包到最新版本。
- 示例:执行
npm update express
,会将express包更新到最新版本。
-
npm uninstall 包名
- 功能:卸载指定包。
- 示例:执行
npm uninstall gulp
,会卸载已安装的gulp包。
-
npm config list
- 功能:查看npm的配置信息。
- 示例:在命令行中执行
npm config list
,会显示当前npm的配置信息。
-
npm info 包名
- 功能:查看指定包的详细信息。
- 示例:执行
npm info express
,会显示express包的详细信息,如版本号、描述、依赖等。
-
npm search 字符串/正则表达式
- 功能:搜索npm仓库中的包。
- 示例:执行
npm search express
,会搜索与express相关的包并显示结果。
-
npm logout
- 功能:退出npm的登录状态。
- 示例:在命令行中执行
npm logout
,会退出当前登录的npm账号。
-
npm login
- 功能:登录npm账号。
- 示例:在命令行中执行
npm login
,然后根据提示输入用户名、密码和邮箱进行登录。
-
npm whoami
- 功能:查看当前登录的npm用户名。
- 示例:在命令行中执行
npm whoami
,会显示当前登录的用户名。
-
npm cache clean
- 功能:清理npm缓存。
- 示例:在命令行中执行
npm cache clean
,会清理npm的缓存数据。
-
npm cache verify
- 功能:检查npm缓存的有效性。
- 示例:在命令行中执行
npm cache verify
,会验证npm缓存的数据是否有效。
-
npm dist-tag 标签名 包名 / npm tag 包名 标签名(这两条命令功能相似)
- 功能:给指定包添加或修改发布标签。发布标签用于标识包的版本,如"latest"、"next"等。默认情况下,"latest"标签指向包的最新版本。通过修改发布标签,可以控制用户通过不同标签安装不同版本的包。例如,你可以将"next"标签指向包的下一个版本,让用户通过安装带有"next"标签的包来尝试新版本的功能。这有助于进行版本管理和发布流程的控制。
- 示例:假设你已经发布了一个名为"mypackage"的包的版本1.0.0和2.0.0,你可以使用以下命令将"next"标签指向2.0.0版本:
npm dist-tag add mypackage@2.0.0 next
然后,用户可以通过以下命令安装带有"next"标签的"mypackage"包。
-
npm run-script 脚本名
-
功能:运行在package.json中定义的脚本。
-
示例:在package.json中定义了一个名为"start"的脚本,可以使用以下命令运行该脚本:
npm run-script start
-
-
npm doc 包名
-
功能:查看指定包的文档。
-
示例:执行
npm doc express
,会显示express包的官方文档。
-
-
npm home 包名
-
功能:查看指定包的官方文档首页。
-
示例:执行
npm home express
,会打开express包的官方文档首页。
-
-
npm bug 包名
-
功能:查看指定包的bug列表。
-
示例:执行
npm bug express
,会显示express包的bug列表。
-
-
npm search 关键字
-
功能:搜索npm仓库中的包。
-
示例:执行
npm search express
,会搜索包含"express"关键字的npm包并显示结果。
-
-
npm view 包名 字段[值]
-
功能:查看指定包的指定字段值。例如,可以使用该命令查看包的版本号、作者等信息。
-
示例:执行
npm view express version
,会显示express包的版本号。
-
-
npm view 包名 version
-
功能:查看指定包的版本号。
-
示例:执行
npm view express version
,会显示express包的版本号。
-
-
npm dedupe 包名
-
功能:消除包之间的重复依赖。当一个项目依赖的多个包之间存在相同的依赖项时,可以使用该命令消除重复的依赖项,以减小项目的体积并避免潜在的冲突。
-
示例:假设项目依赖的包A和包B都依赖于相同版本的lodash,可以使用以下命令消除重复的依赖项:
npm dedupe lodash
-
-
npm version minor / npm version major
-
功能:更新包的版本号为次要版本(minor)或主要版本(major)。
-
示例:执行
npm version minor
,会将当前包的版本号由1.0.0更新为1.1.0;执行npm version major
,会将当前包的版本号由1.0.0更新为2.0.0。
-
-
npm tag 包名@版本号
-
功能:给指定版本的包添加标签。通过添加标签,可以标识特定版本的包,以便用户可以通过标签安装特定版本的包。
-
示例:假设已经发布了一个名为"mypackage"的包的版本1.0.0,并且想要将该版本添加一个名为"v1"的标签,可以使用以下命令:
npm tag mypackage@1.0.0 v1
然后,用户可以通过以下命令安装带有"v1"标签的"mypackage"包的1.0.0版本:npm install mypackage@v1
-
-
npm publish 包名
-
功能:发布包到npm仓库。在发布之前,需要先在package.json中配置相应的信息,如名称、版本、描述等。发布时需要使用已经注册的npm账号登录。发布后,其他人可以通过npm install命令安装并使用该包。
-
示例:假设已经完成了对一个名为"mypackage"的包的开发和测试,并且准备将其发布到npm仓库,可以使用以下命令进行发布:
npm publish
然后根据提示输入相关信息完成发布。
-
-
npm unpublish 包名@版本号
-
功能:从npm仓库中删除已发布的包。注意,这是一个敏感操作,一旦删除,将无法恢复。因此,在删除之前,请确保你真的需要这样做,并且已经通知了相关的使用者。
-
示例:假设你想要删除已经发布的"mypackage"包的1.0.0版本,可以使用以下命令进行删除:
npm unpublish mypackage@1.0.0
-
-
npm link
-
功能:创建一个符号链接,使得本地开发的包可以直接被其他项目引用。这对于开发和测试本地包非常有用。
-
示例:假设你正在开发一个名为"my-local-package"的本地包,并且想要在其他项目中使用它,可以在"my-local-package"的根目录下执行
npm link
。然后,在需要使用该包的项目中执行npm link my-local-package
,即可创建一个指向"my-local-package"的符号链接。
-
-
npm outdated
-
功能:检查当前项目中安装的包是否有更新的版本可用。
-
示例:在项目的根目录下执行
npm outdated
,会显示当前项目中安装的包及其可用的更新版本信息。
-
-
npm repo 包名
-
功能:打开指定包的官方仓库页面。
-
示例:执行
npm repo express
,会打开express包的官方仓库页面。
-
-
npm help 命令名
-
功能:查看指定命令的帮助信息。
-
示例:执行
npm help install
,会显示install命令的帮助信息。
-
-
npm completion
-
功能:配置npm命令行的自动补全功能。这可以方便你在输入npm命令时快速补全命令和参数。
-
示例:在命令行中执行
npm completion
,然后按照提示进行配置即可启用自动补全功能。
-