简介
NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,npm命令可以再cli中执行,方便进行包管理。使用NPM可以很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。
查看npm配置
- 基本配置
npm config list //查看npm主要配置包含:npm仓库地址,cwd路径,根目录等配置信息 - 详细配置
npm config ls -l //查看全部npm默认配置 - 获取配置值
npm config get key //查看config中key对应的配置项 - 设置配置值
npm config set key=value //设置config中key对应的配置项值为value - 编辑npm 配置文件
npm config edit
config这块用得最多应该是设置代理,解决npm安装一些模块失败的问题。例如在公司内网,可能因为公司的防火墙原因,无法完成任何模块的安装,这个时候设置代理可以解决
npm config set proxy=http://xxx.com:8080
又如国内的网络环境问题,某官方的IP可能被和谐了,幸好国内有好心人,搭建了镜像,此时我们简单设置镜像
npm config set registry=“http://r.cnpmjs.org”
也可以临时配置,如安装淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
查看相关
- 查看版本
npm –v - 查看当前包的安装路径
npm root - 查看全局的包的安装路径
npm root -g
帮助相关
- 打开本地的npm帮助文当,内容很详细
npm help npm - 单独查看install命令的帮助文档,npm其他命令也可以用此方法看详细帮助
npm help install
系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html
切换仓库到淘宝镜像
- 一次性:
npm --registry https://registry.npm.taobao.org install express // 修改当前项目的仓库位置 - 永久性:
npm config set registry https://registry.npm.taobao.org //修改全局配置到淘宝镜像 - 设置完成后可以通过以下命令查看是否配置成功
npm config get registry
或
npm info express
切换回npm官方
npm config set registry http://registry.npmjs.org //发布npm包时需要先切换回官方地址
安装淘宝npm镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
设置完淘宝镜像之后可以通过命令cnpm执行淘宝仓库中的npm指令
安装成功之后,输入cnpm –v可以检查版本:
cnpm -v
查看镜像
npm config get registry
恢复镜像:
npm config delete registry
或
npm config edit(手动删除)
安装模块
- npm install:根据package.json文件中的dependencies配置安装所有的依赖
- npm install <包名>:本地安装,会默认安装最新版本。示例:
npm install express - npm install <包名@x.y>:安装指定版本。示例:
npm install express@3.0.6 - npm install -g <包名>
全局安装:将包安装到全局目录中(npm config get prefix所对应的目录),不修改package.json,执行npm install不会自动安装。示例:
npm install -g @angular/core - npm install --save <包名> 或 npm install -S <包名>
自动把模块和版本号添加dependencies部分(生产环境)。执行npm install 时会将包安装到node_modules中,运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中,这样代码提交到github时,就不用提交node_modules这个文件夹了。示例:
npm install --save gulp
对应的package.json 文件的 dependencies 字段:
“dependencies”: {
“gulp”: “^3.9.1”
} - npm install --save-dev <包名> 或 npm install gulp -D
自动把模块和版本号添加devDependencies部分(生产环境)。执行npm install 会自动安装这个包到node_modules中,运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中,这样代码提交到github时,就不用提交node_modules这个文件夹了。示例:
npm install --save-dev @angular/core
对应的package.json 文件的 devDependencies字段:
“devDependencies”: {
“gulp”: “^3.9.1”
} - npm install --save-optional <包名> 或 npm install –O <包名>
安装包信息将加入到optionalDependencies(可选阶段的依赖)。示例:
npm install --save-optional gulp
对应的package.json 文件的optionalDependencies字段:
“optionalDependencies”: {
“gulp”: “^3.9.1”
} - npm install gulp --save-exact 或 npm install gulp -E
精确安装指定模块版本。示例:
npm install --save-exact gulp
查看package.json 文件的 dependencies 字段,以看出版本号中的^消失了:
“dependencies”: {
“gulp”: “3.9.1”
}
检查模块是否已经过时
npm outdated
此命令会列出所有已经过时的包,可以及时进行包的更新
卸载模块
npm uninstall element-ui
查看安装的模块及依赖
- 列表方式查看安装的模块
npm ls - 列表方式查看全局安装的模块及依赖
npm ls -g
最常用命令无非清除npm本地缓存
npm cache clean
更新模块
- npm -g update <包名>: 全局更新
- npm update <包名>: 本地更新
示例:
npm update element-ui
查看所有模块的版本
npm version
查看模块的注册信息
- 查看某个模块的所有版本
npm view <模块名> versions - 查看模块的依赖关系
npm view <模块名>dependencies - 查看模块的源文件地址
npm view <模块名>repository.url - 查看模块的贡献者,包含邮箱地址
npm view <模块名>contributors
运行工程
npm run serve
该命令运行package.json文件中scripts名称为start的命令,例如:
{
// …
“scripts”: {
“start”: “node build.js”
}
}
初始化package.json文件
安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用,也说package.json在项目中是必不可少的。
npm init:
npm init –y:都用默认参数
在项目中引导创建一个package.json文件,包括名称、版本、作者这些信息等
添加用户
npm adduser
发布包到官方仓库
发布模板到npm社区前需要先登录,然后再进入发布的操作
- 先执行login命令登录到官方仓库中
npm login - 切换到生成目录(默认=dist)目录下之后执行,将生成的包推送到官方仓库
npm publish --access=public //public表示发布的包的访问级别为public - 撤销发布:
npm -f unpublish dollarphpajax@*