npm常用命令

npm作为node.js的包管理器,所以安装了node.js会自动安装上npm node.js下载地址
安装完成node.js之后,只要在cmd中输入npm -v,如果出现了版本号,就表示安装成功

npm -v
6.12.1

1.npm设置
由于外网被墙的原因,在介绍其他npm命令之前,我们首先要解决npm安装包速度很慢的问题,有两种方式解决这个问题:
1.1 将npm注册地址设置成淘宝包镜像地址,这个方式是永久性的,只要设置一次,以后安装包都会从淘宝的镜像地址拉取

npm config set registry https://registry.npm.taobao.org 

1.2 安装cnpm,也就是淘宝的npm命令,以后安装包用cnpm代替npm即可。
安装包的命令是:npm install

npm install -g cnpm --registry=https://registry.npm.taobao.org
// -g表示全局安装,意思就是在你的整个电脑中都是可用的,如果不加这个命令就表示本地安装,意思是只在当前项目里面起作用
// --registry=https://registry.npm.taobao.org 加这条的原因在于,你用npm去安装cnpm包,还是会被墙的,所以临时将注册地址改成淘宝镜像地址

以后安装包就需要使用cnpm命令来安装了

cnpm install xx包名

2.管理包

2.1 安装包

npm install element-ui
// 如果后面不跟包名,直接npm install 则会安装项目中依赖的所有包

2.2 查看已安装的包

npm list -g
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
// 会以树形的结构列出已安装包的信息
// 如果要查看某个包的信息,使用 npm list xx 包名即可
// list可以简写成ls

2.3 如果我们要安装指定版本的包,只需要在包名后面加上“@版本号”即可

npm install [email protected]

2.4 卸载包

npm uninstall element-ui

2.5 更新包

npm update element-ui
// 默认会更新到包的最新版本

2.6 关于附加的命令:–save、–save-dev、-s(或者-S)、-d(或者-D)
我们在安装包的时候会经常附加这些命令:

npm install --save element-ui 
// 简写形式:npm install -s element-ui
// --save或-s写在包名前面或者后面效果相同
npm install --save-dev element-ui 
// 简写形式:npm install -d element-ui

在解释这个之前,我们先要知道:如果你使用 npm install 命令安装了包,在项目下面会生成一个package.json的文件,专门用来记录安装的包的信息,其中有两个对象:
dependencies:表示项目用于生产环境的依赖
devDependencies:表示项目用户开发环境的依赖
–save 命令就是将要安装的包信息保存在dependencies中
–save-dev 命令则是将要安装的包信息保存在devDependencies中
所以,我们一般会把像框架之类的如vue、react放在dependencies,那些loader、babel用于编译,工具性质的放在devDependencies
但实际上,我们即便是把vue放在devDependencies中,最后打包出来的项目也不会有任何问题。那么,这两个的本质区别在于发布包的时候(我们一般可能只会去使用包,而不会去写自己的包),保存在dependencies中的包会自动下载下来,而处在devDependencies中的包则不会。但是,当在我们的项目中,使用npm install 就全部下载下来了,自然就不会有什么区别了

3.常见问题
3.1 Cannot find module…
没有找到某个包,你只要安装下这个包即可
3.2 npm resource busy or locked…
你可以先清除node_modules,然后再安装

npm cache clean
npm install

3.3 对于很多安装失败的报错,或者长时间无法安装,或者一些奇奇怪怪的报错,可能都是由于被墙而导致请求超时发生的错误,参考 1.npm设置 即能解决问题

你可能感兴趣的:(JavaScript,npm)