心月狐
cxy0218
首页课程项目归档照片墙音乐说说学习资料打卡杂谈创意工坊关于
封面

把博客从 C 盘搬到 D 盘:一次环境迁移的踩坑记录

写作时间:2026-10-14 21:30:00
# Next.js
# 环境配置
# 踩坑

为什么要搬

这个站点原来在另一台电脑的 C 盘上跑。这台机器 C 盘吃紧,于是把整个项目挪到 D 盘,同时要在没有 Node 环境的机器上重新把它跑起来。

坑一:新机器没有 Node

启动脚本第一句是 where node,找不到就直接退出。这次没有装系统级 Node,而是下载官方便携版(v24.21.0 的 win-x64 zip)解压到项目目录里,再在启动脚本里把它加进 PATH:

if exist "%~dp0node\node.exe" set "PATH=%~dp0node;%PATH%"

好处是不需要管理员权限,换机器时把文件夹整个拷过去就能跑,不要了删目录即可。

坑二:依赖装到一半断掉

npm ci 要从源里拉几百个包,网络一抖就前功尽弃(这次报的是 ECONNRESET)。可行的做法是把缓存目录放进项目里(--cache),断了重跑时下过的包会直接命中缓存;重跑前不用删 node_modules,npm 会自己处理。

坑三:服务起来了又自己退出

终端里明明打印了 Ready,过一会儿进程却没了。报错是 EXDEV: cross-device link not permitted,出在 Next 写遥测配置文件那一步。把遥测关掉就正常了:

set "NEXT_TELEMETRY_DISABLED=1"

小结

迁移的要点其实就两条:环境尽量做成便携的(放进项目目录),以及把启动脚本里"依赖外部环境"的地方提前兜住——少一个假设,就少一个换机器时要重新排查的坑。

迁移后顺手修的几个问题

环境跑起来之后还处理了几处「不修不行」的细节:

:: 启动脚本:优先使用随包内置的 Node,并关掉遥测
if exist "%~dp0node\node.exe" set "PATH=%~dp0node;%PATH%"
set "NEXT_TELEMETRY_DISABLED=1"
  • 本机没有系统级 Node,脚本第一句 where node 就会失败退出 —— 改为优先用项目自带的便携版 Node;
  • 不加 NEXT_TELEMETRY_DISABLED=1 时,Next 16 写遥测配置会抛 EXDEV 并让进程退出;
  • 顺带把「内容必须等 JS 才显示」的规则删掉,手机慢网下不再长时间白屏;
  • 图片全部走 WebP 按尺寸下发,并把三张 900KB 级别的图压到几十 KB。

写完并整理后的文章列表

avatar

cxy0218

海南比勒费尔德应用科学大学计算机科学专业 2025 级本科生,正在学习编程、算法与数据结构、操作系统、人工智能基础,以及德语和英语。

RECOMMENDED

给博客养一只 AI 桌宠:九个动作状态 + 番茄钟联动 + 接入 DeepSeek

2026-10-16 11:30:00

算法与数据结构:排序算法到底怎么选

2026-10-14 19:30:00

给博客加一个「时间段打卡」:从需求到上线的完整记录

2026-10-16 10:00:00

Table of Contents

心月狐桌宠