npm基本使用
前言
若文章有误,欢迎读者留言反馈npm基本概念
npm
全称为 Node Package Manager
,是一个基于 Node.js
的包管理器,也是 Node.js
社区最流行、支持的第三方模块最多的包管理器。它的初衷就是让开发人员更容易分享和重用代码。npm
提供了命令行工具,其主要功能是管理Node.js包
,包括安装、更新、删除、查看、搜索、发布等。
npm
最初只是 Node.js
的包管理器,但随着前端技术的不断发展,它的定位变成了广义的包管理器,可以实现JavaScript
、React
、Vue
、Gulp
、移动开发
等包管理,是目前最大、生态最为健全的包管理器。
npm
能解决 Node.js
在模块管理上的很多问题,其常见的应用场景如下:
- 从
npm
镜像服务器下载第三方模块; - 从
npm
镜像服务器下载并安装命令行程序到本地; - 自己发布模块到
npm
镜像服务器供他人使用。npm
不需要单独安装,在安装Node.js
时,就会连带着一起安装npm
了。但是安装的npm
不一定是最新的版本,可以使用以下命令来查看本地npm
的版本:这里的1
npm -v
-v
是--version
的缩写,表示版本。如果想升级npm
版本,可以使用以下命令:这里1
npm install npm@latest -g
@latest
表示最新的版本,-g
是--global
的缩写,表示全局安装。
我将常用的npm
命令放到文章后面,归纳为一个表格了
npm基本使用
- npm init -y 可以快速生成一个package.json文件
- 没有该包管理文件,就没法安装依赖得到node_modules
- npm i -S 包名@版本号,指定版本安装【不指定版本号就会安装最新版本】
- npm i -D 包名@版本号,指定版本安装【不指定版本号就会安装最新版本】
- npm up 包名@版本号,指定版本更新【不指定包名及版本号,会更新所有包为最新版本即npm update】
- 【指定包名不指定版本号直接更新为最新版本】
- npm un 包名@版本号,指定版本卸载【必须指定包名,npm uninstall简写,有个弊端就是卸载包或插件了,但是package.json文件里还有该包名及版本号信息,需要自己手动清除】
- npm un 包名@版本号 -S,加这个参数可以清除package.json里的生产环境(dependencies)里的包名及版本号信息
- npm un 包名@版本号 -D,加这个参数可以清除package.json里的开发环境(devDependencies)里的包名及版本号信息
【注意:打包时不包含开发环境的包,会出现丢包,不知道安装在哪就安装到运行环境,运行环境不会出现丢包】
切换阿里的镜像源
1 | npm i -g cnpm --registry=https://registry.npm.taobao.org |
cnpm -v可以用来检测是否安装成功,之后使用cnpm i -S 包名
来安装我们需要的包
-g、-S、-D参数说明
- npm i moduleName
局部安装,安装依赖到项目根目录的node_modules
目录下,老版本不写入节点【npm 5.0+
版本默认添加到package.json
文件中的dependencies
节点中】,npm i
时不下载该依赖 - npm i -g moduleName
全局安装,不在node_modules
目录下,不写入节点,npm i
时不下载该依赖 - npm i —save moduleName
局部安装,--save
简写为-S
,安装依赖到node_modules
目录下,写入dependencies
节点,npm i
时下载该依赖,一般安装运行环境依赖,如vue
、element-ui
、echarts
、express
等 - npm i —save-dev moduleName
局部安装,--save-dev
简写为-D
,安装依赖到node_modules
目录下,写入devDependencies
节点,npm i
时下载该依赖,一般安装开发环境依赖,如webpack
、eslint
、gulp
、babel
等
两个节点:
dependencies
和devDependencies
两个节点属于package.json文件中dependencies
节点是项目运行时的依赖,当程序上线后仍然需要的依赖,比如express
这些,这时需要--save
参数devDependencies
节点是开发依赖,当我们在开发时会用到这些依赖,当项目部署了就不需要了,如webpack
、gulp
、babel
这些,这时需要--save-dev
参数
npm 5.0+
版本在默认情况下会将安装的模块添加到package.json
文件中的 dependencies
节点中。
对于较老的npm
版本,你就必须指定参数,才能加入到不同节点中。
命令行删除项目里的node_modules
- 全局安装 rimraf
rimraf包的作用:以包的形式包装rm -rf命令,用来删除文件和文件夹的,不管文件夹是否为空,都可以删除。
1
npm i -g rimraf
- 执行删除命令
进入需要清理的项目中,执行 rimraf node_modules 命令即可将node_modules文件删除干净
1
2
3rimraf node_modules
# 或者下面这个
rimraf .\node_modules\ - 安装node_modules
如果需要重新安装回来,只要项目根目录有
package.json
包管理文件就可以安装回来1
npm i
常用的npm命令
命令 | 作用 |
---|---|
npm -v | 查看 npm 版本。 |
npm init | 初始化后会出现一个 package.json 配置文件。可以在后面加上 -y ,快速跳过问答式界面。 |
npm install | 根据项目中的 package.json 文件自动下载项目所需的全部依赖。 |
npm install 包名 —save-dev(npm install 包名 -D) | 安装的包只用于开发环境,不用于生产环境,会出现在 package.json 文件中的 devDependencies 属性中。 |
npm install 包名 —save(npm install 包名 -S) | 安装的包需要发布到生产环境的,会出现在 package.json 文件中的 dependencies 属性中。 |
npm list | 查看当前目录下已安装的 node 包。 |
npm list -g | 查看全局已经安装过的 node 包。 |
npm —help | 查看 npm 帮助命令。 |
npm update 包名 | 更新指定包。 |
npm uninstall 包名 | 卸载指定包。 |
npm config list | 查看配置信息。 |
npm 指定命令 —help | 查看指定命令的帮助。 |
npm info 指定包名 | 查看远程 npm 上指定包的所有版本信息。 |
npm config set registry https://registry.npm.taobao.org | 修改包下载源,这里修改为了淘宝镜像。 |
npm root | 查看当前包的安装路径。 |
npm root -g | 查看全局的包的安装路径。 |
npm ls 包名 | 查看本地安装的指定包及版本信息,没有显示 empty。 |
npm ls 包名 -g | 查看全局安装的指定包及版本信息,没有显示 empty。 |
扩展知识
nvm
可以安装nvm
管理node
版本
nrm
可以安装nrm
管理npm
源