npm,全称为Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。npm之于Node.js,就像pip之于Python,gem之于Ruby,pear之于PHP。
此外,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
npm init
npm init
,然后根据提示输入项目信息,如项目名称、版本、描述等。npm install
npm install
,npm会自动读取package.json文件并安装所需的依赖。npm install 包名 --save-dev
npm install gulp --save-dev
,会将gulp作为开发依赖安装,并添加到package.json的devDependencies中。npm install 包名 --save
npm install express --save
,会将express作为生产依赖安装,并添加到package.json的dependencies中。npm list
npm list
,会显示当前项目已安装的所有包及其依赖关系。npm list -g
npm list -g
,会显示全局已安装的所有包及其依赖关系。npm update 包名
npm update express
,会将express包更新到最新版本。npm uninstall 包名
npm uninstall gulp
,会卸载已安装的gulp包。npm config list
npm config list
,会显示当前npm的配置信息。npm info 包名
npm info express
,会显示express包的详细信息,如版本号、描述、依赖等。npm search 字符串/正则表达式
npm search express
,会搜索与express相关的包并显示结果。npm logout
npm logout
,会退出当前登录的npm账号。npm login
npm login
,然后根据提示输入用户名、密码和邮箱进行登录。npm whoami
npm whoami
,会显示当前登录的用户名。npm cache clean
npm cache clean
,会清理npm的缓存数据。npm cache verify
npm cache verify
,会验证npm缓存的数据是否有效。npm dist-tag 标签名 包名 / npm tag 包名 标签名(这两条命令功能相似)
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
,然后按照提示进行配置即可启用自动补全功能。