4.2 KiB
4.2 KiB
Windows 静态构建指南
🚨 常见权限问题解决方案
方法一:使用管理员权限
- 右键点击 PowerShell 或 CMD
- 选择"以管理员身份运行"
- 导航到项目目录:
cd "E:\成品的网站\kejiyun" - 运行构建:
npm run build:static
方法二:修改杀毒软件设置
- 临时关闭实时保护(Windows Defender 或其他杀毒软件)
- 将项目目录添加到杀毒软件白名单
- 重新尝试构建
方法三:使用简化构建命令
# 方法 1
npm run build:simple
# 方法 2
npx next build
# 方法 3(如果上面的失败)
set NEXT_DISABLE_TELEMETRY=1
set NODE_ENV=production
npx next build
🔧 手动构建步骤
1. 清理环境
# 停止所有Node进程
Get-Process node -ErrorAction SilentlyContinue | Stop-Process -Force
# 清理缓存目录
Remove-Item -Path ".next", "out" -Recurse -Force -ErrorAction SilentlyContinue
# 清理npm缓存
npm cache clean --force
2. 检查文件权限
# 检查当前目录权限
Get-Acl . | Format-List
# 如果需要,修改目录权限
icacls . /grant $env:USERNAME:F /t
3. 重新安装依赖
# 删除node_modules
Remove-Item -Path "node_modules" -Recurse -Force -ErrorAction SilentlyContinue
# 重新安装
npm install
4. 构建
npm run build:static
🚀 成功构建后的验证
构建成功后,您应该看到:
out/
├── index.html # ✅ 简体中文首页
├── about/
│ └── index.html # ✅ 关于页面
├── news/
│ ├── index.html # ✅ 新闻列表
│ ├── ai-transformation-2024/
│ ├── cloud-security-best-practices/
│ └── company-expansion-2024/
├── products/
├── support/
├── zh-TW/ # ✅ 繁体中文版本
├── en/ # ✅ 英文版本
└── _next/ # ✅ 静态资源
🌐 本地预览
# 启动静态服务器
npm run serve
# 或者使用Python(如果安装了)
python -m http.server 3000 --directory out
# 或者使用其他静态服务器
npx http-server out -p 3000
🔍 故障排除
错误:EPERM: operation not permitted
原因:文件权限或进程锁定问题
解决方案:
- 以管理员身份运行终端
- 确保没有其他进程正在使用项目文件
- 临时关闭杀毒软件
- 重启电脑后重试
错误:构建过程中卡住
解决方案:
- 按
Ctrl+C停止进程 - 运行:
npm run build:simple - 或使用
npx next build --debug
错误:out目录为空或缺少文件
检查:
- 查看构建日志中的错误信息
- 确认
generateStaticParams函数正确 - 检查是否有动态导入或服务器端功能
错误:语言切换不工作
这是正常的,静态导出模式下:
- 中间件不会执行
- 语言切换依赖客户端JavaScript
- 需要在浏览器中测试
📦 部署选项
1. Netlify(推荐)
# 方法1:拖拽部署
# 将整个 out/ 目录拖拽到 https://app.netlify.com/drop
# 方法2:命令行部署
npm install -g netlify-cli
netlify deploy --prod --dir=out
2. Vercel
npm install -g vercel
vercel --prod
3. GitHub Pages
# 推送 out/ 内容到 gh-pages 分支
git subtree push --prefix out origin gh-pages
4. 传统服务器
- 上传
out/目录到服务器的网站根目录 - 确保服务器支持SPA路由(对于多语言URL)
⚡ 性能优化
构建后的静态网站已经包含:
- ✅ 代码分割
- ✅ 资源压缩
- ✅ 图片优化
- ✅ CSS/JS 最小化
- ✅ 预加载关键资源
🔄 更新流程
当您修改内容后:
- 更新相应的Markdown或JSON文件
- 如果添加新文章,更新
generateStaticParams - 重新运行
npm run build:static - 重新部署
out/目录
📞 需要帮助?
如果仍然遇到问题:
- 确保使用管理员权限
- 检查Windows版本兼容性
- 尝试在不同的文件夹位置重新克隆项目
- 考虑使用WSL(Windows Subsystem for Linux)
记住:静态导出的网站速度极快,完全不需要Node.js服务器,可以部署到任何静态网站托管服务!