简介NPM(Node Package Manger)
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
npm 安装
- Windows 下,一般情况,安装node.js 的同时,npm 也会同时安装。
- Ubuntu 下
1
2
3
4
5
6
7
8sudo apt-get install curl
curl http://npmjs.org/install.sh | sudo sh
#或者
sudo apt-get install npm
#查看npm被安装到哪里
whereis npm
#设置成全局:
ln -s [文件位置/npm] /usr/local/bin/npm
配置镜像
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
npm 升级
1 | npm -g install npm ( 最新稳定版 ) 或 |
常用
1 | npm install -g pm2 |
常用命令
安装必要依赖1
npm install --production
安装开发依赖1
npm install --dev
安装全部依赖1
npm install
全局安装辅助模块
1 | $ npm install pm2 -g # 命令行安装 pm2 |
安装并更新package.json中的版本配置
- 添加–save 参数安装的模块的名字及其版本信息会出现在package.json的dependencies选项中
- 添加–save-dev 参数安装的模块的名字及其版本信息会出现在package.json的devDependencies选项中
- 添加–save-optional 参数安装的模块的名字及其版本信息会出现在package.json的optionalDependencies选项中
1
npm install <name> [–save|–save-dev|–save-optional]
安装模块的config的tag配置中含有指定tag的版本
1 | npm install <name>@<tag> |
显示npm的bin目录
1 | npm bin |
设置npm配置
1 | npm config set <key> <value> [–global] |
使用–global参数,设置全局配置
Example:
设置代理1
npm config set proxy=http://proxy.tencent.com:8080
设置npm的镜像地址
1 | npm config set registry http://npm.oa.com |
获取npm配置
npm config get
Example:
获取npm当前镜像地址
1 | npm config get registory |
删除npm配置
1 | npm config delete <key> |
Example:
删除代理设置
1 | npm config delete proxy |
在编辑器中打开npm配置文件
1 | npm config edit |
交互式的创建package.json文件
1 | npm init |
创建模块的压缩包
1 | npm pack [<pkg> [<pkg> … ]] |
如果没有参数,则npm会打包当前模块目录
发布模块,发布后可通过名称来安装该模块1
2npm publish <tarball>
npm publish <folder>
其中:
删除模块
1 | npm rm <name> |
注意:不会删除package.json文件dependencies选项中对应的依赖配置
查找模块
1 | npm search [search terms ..] |
查找匹配查找字符串的模块
更新模块
1 | npm update [-g] [<name> [<name> … ]] |
更新指定name列表中的模块。-g参数更新全局安装的模块。
如果没有指定name,且不是在某个模块内,会更新当前目录依赖的所有包都会被更新(包括全局和模块内);如果当前目录在某个模块目录内,会更新该模块依赖的模块,所以不指定name直接运行npm update时,最好在某个模块内运行,以免更新到其他不想更新的模块。
执行脚本
1 | npm start [<name>] |
运行package的start脚本,该脚本写在package.json文件scripts的start字段中。
该字段的值可以是当前系统控制台可执行的脚本,也可以是当前系统可执行文件的路径。
如果不传name参数,则执行当前目录下package.json文件中定义的脚本。
详见https://npmjs.org/doc/misc/npm-scripts.html
package.json文件
模块的配置文件,详见https://npmjs.org/doc/files/package.json.html
发布项目到npm
- 在NPM官网注册账号
- 用户验证,命令行执行
1 | npm adduser |
发布模块,在模块的根文件夹执行
1
npm publish
更新版本
如果是git库时,会为新版本号创建一条提交信息,package版本号会自动递增。
1
2npm version 0.0.4
npm publish将代码同步到github.com
npm常用命令
1 | npm search module_name 查找模块 |
Package.json 属性说明
name - 包名。 version - 包的版本号。 description - 包的描述。 homepage - 包的官网 url 。 author - 包的作者姓名。 contributors - 包的其他贡献者姓名。 dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。 repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。 main - main 字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫 express,然后用户安装它,然后require("express")。 keywords - 关键字
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章