NPM命令主要是做四种操作:安装、删除、初始化、配置。
1.安装命令
npm install packageName
## 简写
npm i packageName
安装package.json中的所有依赖。
npm install
安装指定版本的包。
npm i packageName@x.x.x
全局安装依赖包。
npm i packageName --global
## 简写
npm ipackageName -g
安装依赖包,并且将依赖写入package.json文件的dependencies部分。
npm i packageName --save
## 简写,简写中-S是大写字母
npm i packageName -S
安装依赖包,并且把依赖写入package.json文件的devdependencies部分。
npm i packageName --save-dev
## 简写
npm i packageName -D
删除某个NPM包。
npm uninstall packageName
初始化一个NPM项目,自动生成package.json文件。
npm init
单次设置镜像,使用淘宝NPM镜像替换官方NPM镜像。 由于NPM网站属于境外服务器,所以我们为了保证下载NPM包时的网络稳定性,会将下载镜像换成国内的镜像,其中淘宝NPM镜像是国内最大的一家NPM镜像网站,在下载NPM包时,使用 cnpm 命令代替原来的 npm 命令。
npm [命令] --registry=https://registry.npm.taobao.org
设置默认npm使用淘宝镜像。
npm config set registry https://registry.npm.taobao.org
安装cnpm包,安装成功后npm命令更换为cnpm命令。
npm install -g cnpm --registry=https://registry.npm.taobao.org
## 安装成功之后,直接像使用npm一样使用cnpm即可,例如:安装某个包就变成了
cnpm i packageName
设置环境变量
npm set xxx
## 例如:
npm set init-author-name 'Your name'
查看某个包的信息。
npm info
## 例如:
npm info lodash
查找npm仓库。
npm search
## 后面可以跟字符串或者正则表达式,例如:
npm search webpack
树形的展示当前项目安装的所有模块,以及对应的依赖。
npm list
## 例如,查看全局安装的模块:
npm list --global
2.dependencies和devDependencies 区别
在上面关于NPM常用命令中,我们有讲到 dependencies 和 devDependencies 的命令分别是:
# 自动把模块和版本号添加到dependencies部分,将依赖安装到生产环境
npm install module-name --save
# 自动把模块和版本号添加到devdependencies部分,将依赖安装到开发环境
npm install module-name --save-dev
很多初学者不太理解什么是开发环境和生产环境,简单来说,就是在项目的开发阶段就是开发环境;项目上线了,开始正式提供对外服务,在生产环境下,一般会关掉错误报告,打开错误日志等操作。
devdependencies配置的是开发环境,安装项目开发时所依赖的模块。比如像webpack工具,只是用来构建项目和打包,这些都是在开发阶段才使用的,等项目上线后就用不到webpack工具了,那么我们就可以把webpack安装到开发环境中(使用 --save-dev命令安装到devdependencies下);
dependencies是生产环境,安装项目运行时所依赖的模块。比如jQuery库,,等项目上线以后依然是要继续使用的,我们就要安装在生产环境中(使用 --save 命令安装到dependencies下),如果没有把需要的依赖安装到生产环境中,项目上线运行时就有可能会报错。
3.本地模式和全局模式
我们在安装NPM包时,有两种模式可选:一是本地模式,二是全局模式。
默认是本地模式安装,本地模式是指在执行npm install命令后,会在执行命令的目录下创建node_modules目录,然后再把下载的依赖和安装包保存到node_modules目录下。
全局模式是指将下载的依赖和安装包保存到全局路径下的方式,在Node.js中使用require依赖时,会优先查找自己当前文件中的node_modules目录,如果没有,在循环遍历上层的node_modules,如果还找不到依赖,就会去全局模式下的安装目录寻找。
在package.json中增加bin字段,并且指向包内对应的文件映射路径,就可以把该文件放到PATH中,使用npm命令执行了,例如:
"bin": {
"testCmd": "bin/cmd.js"
}
配置好bin字段后,在项目根目录输入 npm link xxx 就可以执行testCmd命令了, 使用 npm link 命令,将 npm 模块链接到对应的运行项目中去,方便地对模块进行调试和测试 。
4.修改NPM全局模式的默认安装路径
一般情况下,我们安装Node.js环境,程序会自动把NPM全局模块的路径设置在系统盘(通常是C盘下),我们在项目开发阶段不建议全局路径设置在系统盘,不但会影响电脑的性能,而且还很不安全。可以通过以下命令来设置默认下载的全局路径目录:
npm config ls
运行结果:
