Pet*_*son 4 build downtime node.js next.js
我有一个 Next.js 应用程序,通过运行来部署
next build
next start
Run Code Online (Sandbox Code Playgroud)
在服务器上。
当构建发生时,它会清除.next构建文件夹中的文件,因此如果我尝试使用该应用程序几秒钟,它会给出错误,因为文件不存在:
MissingStaticPage [Error]: Failed to load static file for page: /reporting/letter_exhibits ENOENT: no such file or directory, open '/home/polson/projects/JRP-Web-Tools/.next/server/pages/reporting/letter_exhibits.html'
Run Code Online (Sandbox Code Playgroud)
一旦我等待构建完成,网络应用程序就会按预期工作。
有没有办法改变构建过程,以便在构建过程中不会出现停机?
小智 10
您可以使用这个简单的策略,虽然它不能保证“零”停机,但它会比当前的体验好得多。基本上,您将项目构建到一个temp文件夹中,然后删除现有.next文件夹,并将temp文件夹重命名为.next.
next.config.js文件中:distDir: process.env.BUILD_DIR || '.next',
Run Code Online (Sandbox Code Playgroud)
echo "Deployment starting..."
# install dependencies if any
yarn || exit
# set build folder to `temp` and build
BUILD_DIR=temp yarn build || exit
if [ ! -d "temp" ]; then
echo '\033[31m temp directory does not exist!\033[0m'
exit 1;
fi
# delete `.next` folder
rm -rf .next
# rename `temp` folder to `.next`
mv temp .next
# run next start
next start
echo "Deployment done."
Run Code Online (Sandbox Code Playgroud)
不过,您可能应该使用像pm2这样的流程管理器进行部署。
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |