前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >IDEA中换行符导致的ESlint警告的解决方法

IDEA中换行符导致的ESlint警告的解决方法

作者头像
码客说
发布2022-04-11 16:05:34
发布2022-04-11 16:05:34
3.6K00
代码可运行
举报
文章被收录于专栏:码客码客
运行总次数:0
代码可运行

前言

项目中可能出现这么一种情况,A提交的代码,B使用Git拉下来之后都是ESlint报的警告。

问题原因

各开发平台的换行符不一致,Win平台会出问题。

在各操作系统下,文本文件所使用的换行符是不一样的。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更换了换行符

GIT设置

禁用GIT的自动修改换行符功能:

方式1

在本地路径C:\Users\[用户名]\.gitconfig下修改git配置[core],如果没有就直接添加上去:

代码语言:javascript
代码运行次数:0
运行
复制
[core]
	autocrlf = false
	safecrlf = true

方式2(推荐)

git bash命令行也可以修改,最终也是修改.gitconfig配置文件:

代码语言:javascript
代码运行次数:0
运行
复制
git config --global core.autocrlf false
git config --global core.safecrlf true

含义: AutoCRLF

代码语言:javascript
代码运行次数:0
运行
复制
# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
# 提交检出均不转换
git config --global core.autocrlf false

SafeCRLF

代码语言:javascript
代码运行次数:0
运行
复制
# 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
# 允许提交包含混合换行符的文件
git config --global core.safecrlf false
# 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

IDE设置使用UNIX换行符

方式1

IDEA的设置File => Settings =>Editor => Code Style

Line separator (for new lines) ,选择:Unix and OS X (\n)

对已使用Windows换行符的文件,可以使用Sublime Text打开, View->Line Endings,选Unix,保存;

方式2(推荐)

项目根目录添加.editorconfig文件,并输入如下:

代码语言:javascript
代码运行次数:0
运行
复制
[*.{js,jsx,ts,tsx,vue}]
# 缩进使用空格
indent_style = space
# 缩进2个字符
indent_size = 2
# 行结尾使用 lf
end_of_line = lf
# 删除行尾空格
trim_trailing_whitespace = true
# 文件结尾添加一个空行
insert_final_newline = true
# 行最大长度
max_line_length = 100

推荐这种

EditorConfig帮助开发人员在不同的编辑器和IDE之间定义和维护一致的编码样式。EditorConfig文件易于阅读,并且与版本控制系统配合使用。

ESLint配置

.eslintrc.js配置

代码语言:javascript
代码运行次数:0
运行
复制
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"],
  parserOptions: {
    parser: "babel-eslint",
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
    // 以下为该项目自定义部分
    'indent': [2, 2], //缩进风格 - 开启 缩进2格
    'no-spaced-func': 2, //函数调用时 函数名与()之间不能有空格 - 开启
    'no-const-assign': 2, //禁止修改const声明的变量 - 开启
    'space-before-function-paren': [0, 'always'], //函数定义时括号前面要有空格 - 关闭
    'eol-last': 0, //文件以单一的换行符结束 - 关闭
    'camelcase': 0, //强制驼峰法命名 - 关闭
    'no-undef': 0, //不能有未定义的变量 - 关闭
    'no-alert': 0, //禁止使用alert confirm prompt - 关闭
    'arrow-parens': 0, //箭头函数用小括号括起来 - 关闭
  },
};

规则

  1. 0 或 'off': 关闭规则。
  2. 1 或 'warn': 打开规则,并且作为一个警告,字体颜色为黄色(并不会导致检查不通过)。
  3. 2 或 'error':打开规则,并且作为一个错误 ,色体颜色为红色(退出码为1,检查不通过)。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • GIT设置
    • 方式1
    • 方式2(推荐)
  • IDE设置使用UNIX换行符
    • 方式1
    • 方式2(推荐)
  • ESLint配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档