美文网首页
跨平台开发时换行符(LF 和 CRLF)带来的问题和解决方案

跨平台开发时换行符(LF 和 CRLF)带来的问题和解决方案

作者: 王小错 | 来源:发表于2020-03-02 23:16 被阅读0次

    起因

    linux 或 unix 环境的换行符很简单—— LF,即我们熟知的 \n。但是在 windows 平台,默认的换行符是 CRLF,即 \r\n

    很多时候我们都是跨平台开发项目,如果项目中使用了 eslint 控制代码规范,就会因此遇到麻烦。因为 eslint 默认的换行符风格要求是 unix 的。

    "linebreak-style": [
      "error",
      "unix"
    ]
    

    当把项目 clone 到 windows 平台时,git 会尝试把 LF 转换为 CRLF,这时你如果随便打开一个源码文件,就会“砰”地发现,全篇爆红,每一行都报错。报错信息为 Deleteeslint(prettier/prettier)

    1

    解决

    以下措施做完,已出现问题的文件并不会自动修复,可以手动点击 VSCode 右下角,修改换行符。如果是刚拉下来的项目,git checkout . 重置一下当前版本就行。

    项目根目录下 .editorconfig 配置

    # /.editorconfig
    root = true
    
    [*]
    autocrlf = false
    end_of_line = lf
    

    VSCode setting.js 配置

    如果你用的是 VSCode 的话

    # 设置文件换行符为 LF
    "files.eol": "\n"
    

    修改全局的 GIT 配置

    以下方式二选一:

    • 方式1 直接修改 ~/.gitconfig 配置文件
    # 追加如下配置
    [core]
        autocrlf = false
    
    • 方式2 命令行执行以下命令,效果一样
    git config --global core.autocrlf false
    

    相关文章

      网友评论

          本文标题:跨平台开发时换行符(LF 和 CRLF)带来的问题和解决方案

          本文链接:https://www.haomeiwen.com/subject/zuygkhtx.html