NPX Gulp生成的Sourcemap行尾格式(CRLF/LF)反复切换的问题咨询及解决方案求助
NPX Gulp生成的Sourcemap行尾格式(CRLF/LF)反复切换的问题咨询及解决方案求助
大家好,我最近碰到一个绕不开的棘手问题:每次执行npx gulp启动SCSS转CSS的构建流程后,Git都会提示一大堆.css.map文件有变更,但我明明完全没修改过SCSS源码!查看diff才发现,是这些sourcemap文件里的行尾格式从构建前的CRLF(\r\n)变成了LF(\n),而我的队友们同样在Windows环境下执行构建,sourcemap的行尾却能保持CRLF不变,这实在让我摸不着头脑,想请各位帮忙分析下原因,以及给出可行的解决办法。
问题核心现象
构建前后,sourcemap文件的sourcesContent部分会出现明确的行尾差异:
- "sourcesContent":["$fonts-path: '/styles/fonts';\r\n@import 'misc';\r\n.asset {..."]
- "sourcesContent":["$fonts-path: '/styles/fonts';\n@import 'misc';\n.asset {..."]
我的本地环境与配置细节
- 系统:Windows 11
- WSL版本:2.5.10.0(通过DDEV在WSL中做测试环境)
- Git本地配置:
git config core.autocrlf # 输出:true git config core.eol # 输出:(空值) .gitattributes配置(含修改前后对比):
初始配置:
后续根据建议修改为:* text=auto *.sh text eol=lf *.[cC][mM][dD] text eol=crlf *.[bB][aA][tT] text eol=crlf* text=auto eol=crlf *.sh text eol=lf *.[cC][mM][dD] text eol=crlf *.[bB][aA][tT] text eol=crlf
已做的排查与尝试操作
- 执行
git ls-files --eol查看SCSS文件的行尾信息:- 我的输出:
i/lf w/crlf - 队友的输出:
i/lf w/lf
- 我的输出:
- 修改
.gitattributes后,再次执行git ls-files --eol path/to/a/file.scss,输出变为:
但重新用Gulp构建后,i/lf w/lf attr/text=auto eol=crlf.map文件依然会出现行尾从CRLF翻转成LF的变更,Git还是会标记这些文件为修改状态。
核心疑问与求助
- 同样都是Windows环境,为什么我的sourcemap文件行尾会在构建后从CRLF翻转成LF,而队友的却能保持CRLF不变?
- 我该怎么调整配置,才能让构建后的sourcemap行尾格式稳定下来,不再被Git标记为无意义的变更?
内容来源于stack exchange
相关产品推荐
相关产品推荐

