版本管理工具 NVM
nvm
(Node Version Manager)是Node.js版本管理工具。可快速安装、更新、卸载和使用node.js版本。
安装
Window安装
注意:
使用nvm管理Node.js版本,在安装前需卸载之前的所有node。
1. 双击下载的nvm-setup.exe
2. 选择安装路径
3. 选择Node.js安装路径
4. 确认安装即可
5. 安装完确认
Linux安装
## 下载压缩包
wget https://github.com/nvm-sh/nvm/archive/refs/tags/<version>.tar.gz
## 解压压缩包
tar -zxvf nvm-<version>.tar.gz
## 配置环境变量
vim ~/.bashrc
export NVM_DIR="$HOME/.nvm/nvm-<version>"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Mac安装
注意:
官网提示不要使用Homebrew
安装nvm。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/<version>/install.sh | bash
或
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/<version>/install.sh | bash
安装完成后需重启终端即可。
配置镜像源
若下载node或使用npm安装模块速度太慢,需要切换国内镜像源。
打开nvm
的安装目录,找到setting.txt文件,加入镜像源内容,然后退出。
## 阿里镜像源
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
## 腾讯镜像源
npm_mirror http://mirrors.cloud.tencent.com/npm/
node_mirror http://mirrors.cloud.tencent.com/nodejs-release/
配置node_global和node_cache
- 进入
nvm
的安装目录,新建node_global和node_cache文件夹 - 在cmd窗口中输入一下命令:
npm config set prefix ".../node_global" ## .../node_global 为node_global文件夹目录 npm config set cache ".../node_cache" ## .../node_cache 为node_cache文件夹目录
- 设置环境变量 。右键
我的电脑 => 属性 => 高级系统设置 => 环境变量
- 添加 NODE_GLOBAL变量,其值为
.../node_global
- 在path变量中增加
%NODE_GLOBAL%
- 添加 NODE_GLOBAL变量,其值为
常用命令
命令 | 说明 |
---|---|
nvm arch | 显示** node.js运行在32位还是64位**的机器上 |
nvm version | v | 查看NVM版本 |
nvm list|ls <available> | 显示已安装列表。available 显示可安装的版本 |
nvm off | 开启node.js版本管理 |
nvm on | 关闭node.js版本管理 |
nvm install <version> | 安装指定版本的node.js,最新版本为 latest |
nvm uninstall <version> | 卸载指定版本的node.js |
nvm use <version> | 使用指定版本的node.js |
nvm current | 显示当前使用的版本 |
nvm alias <name> <version> | 为指定版本设置别名 |
nvm proxy <url> | 设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理 |
nvm node_mirror <url> | 设置node镜像。默认为https://nodejs.org/dist 。设置后可在安装目录setting.txt文件中查看,也可直接在其文件中设置 |
nvm npm_mirror <url> | 设置npm镜像。默认为https://github.com/npm/cli/archive/ 。设置后可在安装目录setting.txt文件中查看,也可直接在其文件中设置 |
nvm root <path> | 设置存储不同版本node的目录。若未设置,默认使用当前目录 |
nvm exec <version> <command> | 在指定版本中执行特定的命令 |
镜像管理工具 NRM
nrm
(npm registry manager)是npm的镜像管理工具,可快速切换 npm源。
安装
npm install -g nrm
查看可用源
nrm ls ## 带 * 号即为当前使用的源
* npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
常用命令
命令 | 说明 |
---|---|
nrm ls | 查看可用源 |
nrm use [源别名] | 切换源 |
nrm current | 查看当前源 |
nrm add [源别名] [源地址] | 添加源 |
nrm del [源别名] | 删除源 |
nrm test [源别名] | 测试源 |
包管理工具 NPM
npm
(Node Package Manager)是Node.js包管理工具。用来管理node.js第三方插件。随着node.js的安装会自动安装对应的版本。
官网 https://www.npmjs.com/
Node附带的npm
不一定是最新版,可通过如下命令更新到最新版:
npm i -g npm@latest
npm
规定,在项目根目录中,必须存在package.json
配置文件。用来记录与项目有关的一些配置信息。如:
- 项目的名称、版本号、描述等
- 项目中使用的模块
- 模块使用范围
命令
npm -v
npm -v
用来查看npm
的版本号
npm config
npm config
命令用于查看或配置设置信息。
命令 | 说明 |
---|---|
npm config list | 查看npm的配置信息 |
npm config set prefix <dir> | 设置模块的全局安装目录 |
npm config set cache <dir> | 设置缓存目录 |
npm config get registry | 查看当前包镜像源 |
npm config set registry=xxx | 设置当前包镜像源 |
npm config set save-prefix ~|^ | 指定使用npm i --save|--save-dev 安装新模块式,允许的版本范围。~ 表示允许小版本升级,即仅允许补丁包的升级 |
npm config set init.xxx | 设置使用npm init 时,生成package.json 文件中字段的默认值 |
npm set
npm set
用来设置环境变量
命令 | 说明 |
---|---|
npm set init-author-name 'xx' | 设置项目作者姓名 |
npm set init-author-email 'xx' | 设置项目作者邮箱 |
npm set init-author-url 'xx' | 设置项目作者主页 |
npm set init-license 'xx' | 设置项目许可证 |
npm set save-exact true | 设置模块为确切版本,而不是一个可选的版本范围 |
npm init
npm init
用来初始化生成一个新的package.json
文件。
命令 | 说明 |
---|---|
npm init | 初始化生成一个新的package.json 文件。此时会向用户提问一序列问题,可一路回车即可 |
npm init -f|-y' | 快速初始化生成一个新的package.json 文件。跳过提问阶段 |
npm info
npm info
用来查看模块的详细信息
命令 | 说明 |
---|---|
npm info <packageName> | 查看指定模块的详细信息,返回一个JavaScript对象 |
npm info <packageName> <attribute> | 查看指定模块的指定属性信息 |
npm search
npm search
用于搜索npm仓库
命令 | 说明 |
---|---|
npm search <keyword> | 通过关键字搜索。keyword 可以为关键字或正则表达式 |
npm list
npm list
用于以属性结构列出当前项目安装的模块,以及它们依赖的模块
命令 | 说明 |
---|---|
npm list | 列出当前项目所安装的所有的模块,以及它们依赖的模块 |
npm list -global | 仅罗列出全局安装的模块 |
npm install
npm install
用于安装模块。可简写为npm i
命令 | 说明 |
---|---|
npm i | 安装package.json 文件中dependencies 和devDependencies 指定的模块 |
npm i -- production | 仅安装package.json 文件中dependencies 指定的模块 |
npm i <packageName> | 本地安装指定模块最新版本 |
npm i <packageName><@version> | 本地安装指定模块的指定版本。@latest 表示最新版本 |
npm i <-S|-save> <packageName> | 本地安装指定模块,模块名称会被添加到dependencies |
npm i <-D|-save-dev> <packageName> | 本地安装指定模块,模块名称会被添加到devDependencies |
npm i <-f|--force> <packageName> | 本地安装指定模块。-f|--force 表示强制重新安装,不管是否已安装过 |
npm i <packageName> --save-exact | 本地安装确切版本 |
npm i -g|-global <-f|--force> <packageName> | 全局安装指定模块。-f|--force 表示强制重新安装,不管是否已安装过 |
注意:
npm install
命令也支持直接从github代码库地址安装模块。如:npm install git://github.com/package/path.git
。
npm update
npm update
用于更新模块。(仅会更新顶层模块,不更新依赖的依赖)
命令 | 说明 |
---|---|
npm update <packageName> | 更新当前项目的指定模块 |
npm update <-S|-save> <packageName> | 更新当前项目dependencies 下指定的模块 |
npm update <-D|-save-dev> <packageName> | 更新当前项目devDependencies 下的指定模块 |
npm update -g|-global <packageName> | 更新全局安装的指定模块 |
npm --depth 999 update <packageName> | 更新指定模块,且同步更新其依赖的包 |
npm uninstall
npm uninstall
用于卸载模块
命令 | 说明 |
---|---|
npm uninstall <packageName> | 卸载当前项目中指定的模块 |
npm uninstall -g|-global <packageName> | 卸载全局安装的指定模块 |
npm run
npm run
用于模块管理和执行脚本。(package.json
中scripts
字段指定脚本命令)
npm run
命令会自动在环境变量$PATH
添加node_modules/.bin
目录,所以在scripts
字段中调用命令时不用添加路径。
在项目根目录中直接执行npm run
命令,会列出项目package.json
里所有可执行的命令。
npm
内置了两个命令,npm test
(等同于npm run test
)和npm start
(等同于npm run start
)
其他命令
命令 | 说明 |
---|---|
npm outdated | 用于检查当前项目所依赖的模块是否已经有新版本 |
npm prune | 用于检查当前项目是否存在package.json 中未提及到的模块 |
npm shrinkwrap | 用于锁定当前项目所依赖模块的版本 |
npm home <packageName> | 用于打开指定模块的主页 |
npm repo <packageName> | 用于打开指定模块的代码仓库 |
包管理工具 YARN
yarn
是经重新设计的npm客户端,运行速度快,且提供离线模式。
yarn与npm对比
npm | yarn | 描述 |
---|---|---|
npm init | yarn init | 初始化项目 |
npm install | yarn install | 安装依赖 |
npm install xxx 、npm install xxx -S | yarn add xxx | 安装指定包,并写入dependencies |
npm install xxx -D | yarn add xxx --dev 、yarn add xxx -D | 安装指定包,并写入devDependencies |
npm install xxx -g | yarn global add xxx | 全局安装指定包 |
npm update xxx | yarn upgrade xxx | 更新指定包 |
npm uninstall xxx | yarn remove xxx | 卸载指定包 |
npm cache clean | yarn cache clean | 清除全局缓存依赖包 |
npm run dev | yarn dev 、yarn run dev | 执行dev 命令 |