发布于 2025-05-01 19:23:03

给网站的node环境合并

每次备份都是连带环境整体全部打包的,这样冗余太多了,而且环境也很乱,干脆给换到pnpm,统一一下。

Note

由于volta不再维护,并且pnpm v11也有一些break change,这里重新写一下现在服务器上最新的配置。

安装fnm

先装一个node的环境管理器。用nvm也可以。

安装:curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell

配置nodejs-release镜像(可选):https://mirrors.tuna.tsinghua.edu.cn/help/nodejs-release/

配置bashrc:

FNM_PATH="$HOME/.local/share/fnm"
if [ -d "$FNM_PATH" ]; then
  export PATH="$FNM_PATH:$PATH"
  eval "$(fnm env --shell bash)"
fi

安装node:fnm i 24

安装pnpm

安装 npm i -g pnpm(更换node环境需要重新安装)。

配置bashrc:

export PNPM_HOME="$HOME/.local/share/pnpm"
case ":$PATH:" in
  *":$PNPM_HOME/bin:"*) ;;
  *) export PATH="$PNPM_HOME/bin:$PATH" ;;
esac

如果是在rc.local中执行,由于没有$HOME变量,所以需要使用绝对路径:

FNM_PATH="/root/.local/share/fnm"
if [ -d "$FNM_PATH" ]; then
  export PATH="$FNM_PATH:$PATH"
  eval "$(fnm env --shell bash)"
fi
# pnpm
export PNPM_HOME="/root/.local/share/pnpm"
case ":$PATH:" in
  *":$PNPM_HOME/bin:"*) ;;
  *) export PATH="$PNPM_HOME/bin:$PATH" ;;
esac

安装依赖并用pm2管理node进程

去每个项目下pmpn i安装依赖即可,然后pnpm i -g pm2安装pm2,如果是在rc.local中使用,还需要加上export PM2_HOME="/root/.pm2"

之前的处理过程

node从手动安装切换成volta

之前都是下载二进制安装的,太原始了,先换成volta。

安装:curl https://get.volta.sh | bash -s -- --skip-setup

配置:

export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

然后volta install node@22

装pnpm

安装:volta install pnpm

配置:

export PNPM_HOME=/opt/pnpm
export PATH=$PNPM_HOME:$PATH

node_modules换成同一个

去每个项目下面pnpm i

欢迎留言