我的GitHub
0%

无星的前端之旅(十一)——Vscode的换行符问题

大🔥都知道,Vscode的换行符有LF和CRLF

1
在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。 

git 换行符LF与CRLF转换问题抄的

这里我们可以知道,在macOS和linux上,与windows的换行符是不一致的。

一旦使用eslint等工具,就会整个项目出问题。。。

可能在百度搜半天,怎么解决这个问题,发现的都是以下两种:

1.新建文件怎么设置换行符

2.单文件如何通过编辑器修改换行符

丝毫没提如何修正已有文件

项目那么多文件,怎么可能手动一个个修复

所以这里提一下如何修正

在mac/linux上:

1
2
cd 项目根目录
find . -type f | grep -v "node_modules" | xargs dos2unix

在windows上,使用git-bash终端,不要用cmd或者powershell

1
2
cd 项目根目录
find . -type f | grep -v "node_modules" | xargs dos2unix
我是阿星,阿星的阿,阿星的星!