Node版本及源管理

前言

Node 版本推薦用最新的lts版本(目前12.x), 嚐鮮能夠用current版本(通常比穩定版超前一個大版本)node

Node單版本

NodeJS 官網下載安裝lts或者current版本:nodejs 官網
linux

Node多版本

有時候須要用到不一樣Node的版本運行不一樣的項目,git

單版本就很侷限了,因此社區也出了多版本管理的工具
github

nvm

nvm一開始只爲linux和macos實現,由於是用shell腳本寫的,
後續流行起來後,就開始有周邊了,包括兼容windows的衍生庫
shell

Linux/macOS上安裝

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
# 或者
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
 # 上面的執行成功後,還須要寫入環境變量,具體改動你的shell配置文件(用戶根目錄下的)
# bash -> .bashrc
# zsh -> .zshrc

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
複製代碼

windows上安裝

直接下載 nvm-windows安裝包安裝便可。macos

$ nvm install 10.15.0 # 下載編譯和安裝指定版本node
$ nvm use 10.15.0 # 切換(使用)指定版本node
$ nvm alias default 10.15.0 # 設置shell默認版本
複製代碼


更多 nvm 用法查看文檔 nvm 文檔
npm

nvs

nvs默認支持全平臺,用node寫的 windows

Linux/macOS上安裝

# 聲明一個臨時變量
export NVS_HOME="$HOME/.nvs"

# 克隆倉庫
git clone https://github.com/jasongin/nvs "$NVS_HOME"

# 執行腳本安裝
. "$NVS_HOME/nvs.sh" install
複製代碼

windows上安裝

  • 安裝chocolatey,相似mac下的brew
  • choco install nvs


操做也是很直觀,跟nvm同樣很直白bash

$ nvs --help
NVS (Node Version Switcher) usage

nvs help <command>             Get detailed help for a command
nvs install                    Initialize your profile for using NVS
nvs --version                  Display the NVS tool version

nvs menu                       Launch an interactive menu

nvs add <version>              Download and extract a node version
nvs rm <version>               Remove a node version
nvs migrate <fromver> [tover]  Migrate global modules
nvs upgrade [fromver]          Upgrade to latest patch of major version

nvs use [version]              Use a node version in the current shell
nvs auto [on/off]              Automatically switch based on cwd
nvs run <ver> <js> [args...]   Run a script using a node version
nvs exec <ver> <exe> [args...] Run an executable using a node version
nvs which [version]            Show the path to a node version binary

nvs ls [filter]                List local node versions
nvs ls-remote [filter]         List node versions available to download

nvs link [version]             Link a version as the default
nvs unlink [version]           Remove links to a default version

nvs alias [name] [value]       Set or recall aliases for versions
nvs remote [name] [uri]        Set or recall download base URIs

A version string consists of a semantic version number or version label
("lts" or "latest"), optionally preceeded by a remote name, optionally
followed by an architecture, separated by slashes.
Examples: "lts", "4.6.0", "6.3.1/x86", "node/6.7.0/x64"
Aliases may also be used anywhere in place of a version string.
複製代碼
$ nvs add lts # 安裝最新的LTS
$ nvs use lts # 切換指定的 node 版本
$ nvs link lts# 配置爲默認版本,設置shell默認版本
複製代碼

Node源管理


公司內部搭建了npm 私有倉庫,倉庫內包含運行項目必要的依賴;

常規的源切換,只能用npm config去設置局部或者全局的源,步驟和操做上有點繁瑣。

針對這種狀況社區也出了方便維護和快速切換的工具:nrm
curl

nrm 安裝

全局安裝nrm

npm install -g nrm
複製代碼

添加內部私倉地址

添加一個新的 npm 源,

nrm add h3npm http://xxxxx/repository/npm-all/  # 公司信息,脫敏
複製代碼

切換 npm 源到私倉

nrm use h3npm
複製代碼


運行nrm ls命令查看當前設置的 npm 源,*表明當前 npm 源

$ nrm ls
  npm -------- https://registry.npmjs.org/ # npm官方源
  yarn ------- https://registry.yarnpkg.com/ # yarn的官方源
  cnpm ------- http://r.cnpmjs.org/ # cnpm 源
  taobao ----- https://registry.npm.taobao.org/ # 淘寶官方鏡像源
  nj --------- https://registry.nodejitsu.com/ # 國外的官方鏡像源
* h3npm ------ http://xxxxx/repository/npm-all/ # 公司內部官方鏡像源(涵蓋私有庫)
  h3-authine - http://xxxxx/repository/npm-authine/ # 私有庫源
複製代碼
相關文章
相關標籤/搜索