我在Windows电脑上做开发时,经常会见到这个现象。代码从远程git仓库clone下来后,然后npm install安装依赖后,打开任意一个代码文件会看到每行结尾处有如下报红:
将鼠标指针停留在行尾报红处,会浮出如下提示:
Expected linebreaks to be 'LF' but found 'CRLF'.eslint(linebreak-style)
字面意思很清楚:期望换行是'LF',但发现是'CRLF'。(eslint换行风格)
但LF和CRLF是什么东西呢?为什么会报红?为什么在MacOS上不会报红?这个代码规范问题又该如何解决呢?好了下面就是我追究的结论。
回车符和换行符是两个不同的字符。
回车符(CR:carriage return),字符编码为:十六进制0D,十进制13,转义字符为'\r';
换行符(LF:line feed),字符编码为:十六进制0A