前言
最近用 Astro + Tailwind 从零搭建了一个个人博客 lslife.cn,整个过程比想象中曲折。今天来记录一下遇到的各种坑和解决方案,供有类似经历的朋友参考。
第一个坑:node_modules 反复提交
现象
每次 git add . && git commit && git push 后,仓库里总是莫名其妙多出 node_modules 目录,导致仓库体积暴增,而且部署到服务器时问题不断。
排查过程
- 检查 .gitignore 文件 - 内容正确:
node_modules/dist/.astro/- 原因分析:文件已经被 Git 跟踪后,即使加入 .gitignore 也不会生效!
解决方案
# 1. 取消跟踪git rm -r --cached node_modules
# 2. 提交变更git commit -m "Remove node_modules from tracking"
# 3. 推送git push教训
如果文件已经被 Git 跟踪,.gitignore 不会生效。必须先取消跟踪。
第二个坑:服务器上的 .gitignore 乱码
现象
本地正常,但服务器上拉取后 node_modules 又出现了。
原因
Windows 的 CRLF 和 Linux 的 LF 换行符不一致,导致 .gitignore 文件在服务器上读取异常。
解决方案
# 最简单粗暴的方案:重新 clonecd /www/wwwrootrm -rf lslifegit clone git@gitee.com:maydayls/lslife.gitcd lslifenpm installnpm run build第三个坑:服务器权限问题
现象
clone 后执行 npm run build 报错:
sh: /www/wwwroot/lslife/node_modules/.bin/astro: Permission denied原因
npm install 创建的 .bin 链接文件没有执行权限。
解决方案
chmod +x node_modules/.bin/astronpm run build总结
- .gitignore 不生效:先
git rm --cached取消跟踪 - 跨平台换行符问题:用
git config --global core.autocrlf input统一处理 - 服务器权限:clone 后记得给 bin 目录加执行权限
下一篇我们聊聊响应式布局的坑。