菜单导航

开发故事
Next.js项目更新或修改后,重新构建步骤
开发故事

Next.js项目更新或修改后,重新构建步骤

野盐
2025-05-27

代码Bug修复和页面优化狂人,一天内生产环境中重新构建了32次,搞得Git推送的时候注释都不知道怎么写了。

总是碰到一些稀奇古怪的问题,不得不记录,后续得写一个自动构建重启的文件。

  1. 构建输出未更新: 直接修改了 /api/admin/upload/route.ts 源代码文件,但 Next.js 的生产构建 (npm run build) 生成的 .next/standalone 目录中的文件没有包含最新的修改。当用 PM2 启动时,它运行的是旧的构建输出。

  2. PM2 或 Node.js 环境的深层问题: 极低的可能性是 PM2 或服务器上的 Node.js 环境在加载或执行代码时存在某种异常,导致没有正确加载或运行更新后的文件。

  3. 编辑了错误的文件: 修改的文件路径可能与 .next/standalone 中实际执行的文件路径不完全对应。

为了彻底排除构建输出没有更新的问题,在服务器上执行一次完整的清理和重新构建,然后再用 PM2 启动。

执行以下步骤:

  1. 确保在项目根目录:

    cd /var/www/ai.wildsalt.me
  2. 停止并删除当前的 PM2 进程:

    pm2 stop my-blog-app
    pm2 delete my-blog-app
  3. 清理并执行完整的重新构建:

    这将删除旧的构建输出,并生成全新的 .next 和 .next/standalone 目录。

    sudo rm -rf .next
    npm run build

    关注 npm run build 的输出,确保它完全成功,没有错误或警告(特别是关于 Dynamic server usage 的,尽管之前决定先放一边,但它们有时会影响构建的完整性)。

  4. 再次手动复制静态资源:

    发现网站样式又没了,执行手动复制静态资源的步骤。

    cp -r .next/static .next/standalone/.next/
    cp -r public .next/standalone/
  5. 使用生态系统文件启动 PM2 进程:

    pm2 start ecosystem.config.js --env production
  6. 查看 PM2 日志:

    运行 pm2 logs <新的进程ID>。

版权声明

本文为「野盐」原创内容,图片个人摄影 / 手绘 / AIGC,后期 PhotoMator / Procreate,版权归「野盐」所有。未经授权,禁止用于商业用途,禁止抹除水印,禁止转发至小红书等平台。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论将以随机ID显示
野盐

野盐

@wildsalt.me

推荐阅读

Automate reddit video creation with n8n待验证
开发故事

Automate reddit video creation with n8n待验证

野盐 | 2025-06-11

"用n8n自动化工具将Reddit帖子转化为视频的完整工作流定义,包含从内容抓取到视频渲染的每个技术细节"

7
解决 AI 编程助手多轮对话后幻觉和代码乱改问题的策略
开发故事

解决 AI 编程助手多轮对话后幻觉和代码乱改问题的策略

野盐 | 2025-06-06

AI代码助手不是魔法师,而是需要精确引导的学徒——当它开始‘自由发挥’,你需要更严格的对话管理和边界设定。

10
Claude失控,所有源代码被其删除。FUCK!
开发故事

Claude失控,所有源代码被其删除。FUCK!

野盐 | 2025-06-04

技术简化变成粗暴删除:AI的‘最优解’,给我带来一次代码被删的愤怒与反思

7