环境部署
JavaScript环境部署常用的工具有:node
npm
nvm
n
node:在项目开发时所需要的代码库
npm:node的包管理工具,在安装的node的时候,npm也会跟着一起安装,npm管理node中的第三方插件
nvm:node版本管理工具,也就是说:一个nvm可以管理多个node版本和npm版本
n:也是node版本管理工具,n命令是作为一个node的模块而存在,而nvm是一个独立于node/npm的外部shell脚本
由于npm安装的模块路径均为/usr/local/lib/node_modules,当使用n切换不同的node版本时,实际上会共用全局node_modules。因此不能很好的满足『按不同node版本使用不同全局node模块』的需求
安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
如果打开缓慢的话,直接浏览器打开url,复制下来,通过shell执行
或者下载其他版本试试
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm默认会安装到~/.nvm
环境变量会被添加到 ~/.bash_profile
或 ~/.zshrc
或 ~/.profile
或 ~/.bashrc
内容如下:
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
需要 source 一下,比如:source ~/.zshrc
卸载全局安装的node/npm
如果使用nvm之前已经安装过node和npm的话,最好清理干净,以mac系统为例:
cd /usr/local/lib,删除node和node_modules
brew uninstall node
检查个人主文件夹下面的所有的local、lib以及include文件夹,删除所有与node和node_modules
清理其他相关的文件和目录,可能不是很全,尽可能地清理的干净点
sudo rm /usr/local/bin/node
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
切换淘宝镜像
vim ~/.zshrc
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
export NVM_IOJS_ORG_MIRROR=https://npm.taobao.org/mirrors/npm/
source ~/.zshrc
windows环境,直接运行如下命令
npm config set registry http://registry.npm.taobao.org
查看当前配置的仓库(镜像)地址
npm config get registry
如果想在特定项目中使用淘宝镜像
npm install --registry=http://registry.npm.taobao.org
打开终端出现如下提示信息处理
安装完nvm后,重新打开终端可能会提示zsh目录不安全,如有提示,安装下面方式修改下权限即可
# 提示信息:
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
# 执行compaudit命令
compaudit
# 可能会出现如下信息:
There are insecure directories:
/usr/local/share/zsh/site-functions
/usr/local/share/zsh
# 执行如下命令,可修复该提示
sudo chmod -R 755 /usr/local/share/zsh
sudo chmod -R 755 /usr/local/share/zsh/site-functions
source ~/.zshrc
# 提示信息(可能是brew缓存记录导致的):
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
# 执行如下命令,可修复该提示
brew cleanup
使用nvm安装多版本node和npm
安装2个版本的node,如下:
- nvm install v12.18.2
- nvm install 10
切换node和npm版本,如下:
- nvm use 12
- nvm use 10
可以通过 node -v
npm -v
查看切换后的node以及npm版本
列出远程服务器上所有的可用版本
- nvm ls-remote
列出已安装实例
- nvm ls
在项目中使用不同版本的node
- 在项目目录中创建.nvmrc文件来指定要使用的node版本。之后在项目目录中执行nvm use即可
在多环境中,npm如何使用
- 每个版本的node都会自带一个不同版本的npm,可以用npm -v来查看npm的版本
- 全局安装的npm包并不会在不同的node环境中共享,因为这会引起兼容问题
- 它们被放在了不同版本的目录下,例如
~/.nvm/versions/node/<version>/lib/node_modules</version>
这样的目录 - 所以在不同版本的npm中,需要
npm install
多次,也可以从本地的其他版本中导入nvm install v12.18.2 --reinstall-packages-from=10.24.1
直接运行特定版本的node
- nvm run 12.18.2 --version
在当前终端的子进程中运行特定版本的node
- nvm exec 12.18.2 node --version
确认某个版本node的路径
- nvm which 12.18.2
yarn
部分包用npm安装一直报错,可尝试用yarn安装
安装yarn
- npm i -g yarn
通过yarn下载
- yarn