NextJS 项目部署脚本

233 阅读1分钟

node 项目部署比纯 web 项目部署要多一些步骤,上传完项目文件需要重新启动,通过部署脚本可以大大提升效率。在服务端构建部署,文件体积大,且依会临时占用服务器性能,在开发设备打包可避免这两项问题。

  1. 修改next.config.js输出模式为standalone

    output: "standalone"

  2. 添加 prisma.schema 服务器环境依赖(以 ubuntu 为例),并执行 prisma generate

    binaryTargets = ["native", "debian-openssl-1.1.x"]

  3. 本地构建应用
  4. 压缩文件,上传到服务器
  5. 登录到服务器,解压文件,重启项目

部署脚本

rm -r dist
rm dist.zip

yarn build

cp -R .next/standalone dist
cp -R public dist/public
cp -R .next/static dist/.next/static

zip -r dist.zip  dist

echo "上传文件"
scp dist.zip username@host:/www/wwwroot/project

echo "部署"
ssh username@host << EOF
cd /www/wwwroot/project
unzip -o dist.zip -d .
# 首次部署
# cd dist
# pm2 start --name project node -- server.js
pm2 restart project
rm dist.zip
EOF

echo "删除文件"
rm dist.zip
rm -r dist