XiaO

Node Version Manager

XiaO / 2023-06-17


虽然鄙人的老爷机依旧硬朗,然而被苹果请出重症监护室这件事,依旧导致了很多网友用爱发电的软件无法再更新了。而本地编译就像你要求八十岁老爷爷跑马拉松一样,这基本也等于变相谋杀了。

譬如,node 在 Homebrew 的新版本已经不支持本老爷机了,其旧版本所使用的一些库的版本与其它软件所需要的相同的库的版本也不兼容,着实麻烦。于是乎,使用 Node Version Manager管理不同版本的 node,放弃 Homebrew 版的 node,也就不会再有依赖障碍了。

NVM 的安装

  1. 删除已经安装的 Homebrew 版 node
brew uninstall --ignore-dependencies node 
brew uninstall --force node 
  1. 安装 Homebrew 版 Node Version Manager [nvm]
brew update 
brew install nvm 

Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.

You should create NVM's working directory if it doesn't exist:
  mkdir ~/.nvm

Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:
  export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

You can set $NVM_DIR to any location, but leaving it unchanged from
/usr/local/opt/nvm will destroy any nvm-installed Node installations
upon upgrade/reinstall.

Type `nvm help` for further information.
  1. 在根目录下创建一个工作文件夹,用于存放和管理所有 node 版本
mkdir ~/.nvm
  1. 配置所需的环境变量,打开 .bash_profile 或 .zshrc,添加如下行:
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion
  1. 将变量加载到当前的 shell 环境中(下次登录,它将自动加载):
source ~/.bash_profile # For bash

source ~/.zshrc # For zsh

使用 nvm 安装管理 node

  1. 查看可以安装的 Node 版本
nvm ls-remote 

...
v19.2.0
v19.3.0
v19.4.0
v19.5.0
v19.6.0
v19.6.1
v19.7.0
v19.8.0
v19.8.1
v19.9.0
v20.0.0
v20.1.0
v20.2.0
v20.3.0
  1. 安装 node
nvm install 19       ## Installing Node.js 19.X version 
nvm install node     ## Installing Latest version 
  1. 检查安装的 node
nvm ls


...
        v19.9.0
->      v20.3.0
default -> node (-> v20.3.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.3.0) (default)
stable -> 20.3 (-> v20.3.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)
  1. 版本切换
nvm use 19 # 使用 19.X 版本的 node


...
->      v19.9.0
        v20.3.0
default -> node (-> v20.3.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.3.0) (default)
stable -> 20.3 (-> v20.3.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

使用 Pake 打包 poe 网页

# 使用 npm 安装 Pake
npm install -g pake-cli

# Command usage
pake url [OPTIONS]...

# 打包 POE
pake https://poe.com --name POE --transparent --icon `path/to/icon.icns`  --show-menu

软件图标可以从 macosicons下载。

使用 Nativefier 打包 poe 网页

# 使用 npm 安装 Pake
npm install -g nativefier

# 打包 POE
nativefier --name Poe --icon `path/to/icon.icns` https://poe.com