nodejs相关:npm、nvm、npx
node 与 npm 是什么不用多说了。
nvm 是管理与切换 node 版本的工具。
npx 是npm包执行器,作用是在不污染全局和项目环境的提前下,临时执行相关命令。
切换 npm 源
# 临时从指定源下载npm包
npm --registry https://registry.npm.taobao.org install express # 从淘宝源安装 express
# 全局修改
npm config set registry https://registry.npm.taobao.org
# 查看当前源
npm config get registry
# 重置为官方源:
npm config set registry https://registry.npmjs.org/
使用 nvm 管理node版本
你是否有这样的经历:当你入职新公司,接手一个老项目,或者当你从github上下载一个高赞的项目时,你满怀热情地在终端输入npm run dev
,结果看到的是令人焦虑的满屏红,项目根本跑不起来。在你抓掉第n根头发之后终于发现,原因是 node
版本不匹配!这时就需要用到 nvm
啦!它可以让你不需要反复卸载重装 nodejs
,只需要简单地执行一条版本切换命令,就可以随意地在各版本的 node
之间切换。
nvm 下载地址:
shell版本:nvm-sh/nvm
windows版本:coreybutler/nvm-windows
注意:安装 nvm 之前,要卸载nodejs
nvm 默认的nodejs下载源是 http://nodejs.org/dist/,是国外站点,国内下载非常慢,而且成功率低,推荐修改为淘宝源,具体方法为:
找到 nvm 的安装目录(windows默认为:C:\Users[当前用户]\AppData\Roaming\nvm,由于此时手边没有linux和macos测试,所以Linux或macos的小伙伴请自行查找路径),打开安装目录下的的 settings.txt
文件,将以下内容复制添加到文件中(注意不要覆盖文件的原有内容):
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
确保安装nvm
之前卸载了nodejs
,否则无法成功切换版本。
nvm 常用命令
nvm ls : # 列出所有已安装的 node 版本,前面有 * 号的为当前使用中的版本
nvm ls-remote : # 列出所有远程服务器的版本(官方node version list)
nvm list : # 列出所有已安装的 node 版本
nvm list available : # 显示所有可下载的版本
nvm install stable : # 安装最新版 node
nvm install [node版本号] : # 安装指定版本 node
nvm uninstall [node版本号] : # 删除已安装的指定版本
nvm use [node版本号] : # 切换到指定版本 node
nvm current : # 当前正在使用的 node 版本
nvm alias [别名] [node版本号] : # 给不同的版本号添加别名
nvm unalias [别名] : # 删除已定义的别名
nvm alias default [node版本号] : # 设置默认版本
npx
npx 是 npm v5.2.0 引入的一条命令,是npm 包执行器。
主要有以下特点:
临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
可以执行依赖包中的命令,安装完成自动运行。
自动加载 node_modules 中依赖包,不用指定 $PATH 。
可以指定 node 版本、命令的版本,解决了不同项目需要使用不同版本的问题
npx会先到 node_modules/.bin 路径检查对应的命令是否存在,找到之后执行;
没有找到,就去环境变量 $PATH 里面,检查对应命令是否存在,找到之后执行;
还是没有找到,自动下载一个临时的依赖包最新版本在一个临时目录,然后再运行命令,运行完之后删除,不污染全局环境。
安装过程很简单,直接运行以下命令即可
npm install npx -g
常用方式:
# 开启静态服务器 (默认以终端所在的当前目录为根目录)
npx http-server -p 3000 # -p 参数为可选,默认端口 8080
# 使用指定的node版本执行命令
npx -p node@16.17.0 npm run dev # 使用 16.17.0 版本的node环境执行 npm run dev