首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

别再用 ESLint 格式化你的代码了!原理揭秘。

:一个 ESLint 插件,它将 Prettier 作为规则在 ESLint 内部运行 我认为在大多数项目中,这两个工具都不再有用。...仅禁用之前配置中的格式化规则 "prettier" ] } 通过从eslint-config-prettier最后扩展,项目可以在不运行 ESLint 中的格式化规则的情况下获得那些流行共享配置的好处...没有什么可以阻止项目在 ESLint 配置的"overrides"或"rules"属性下手动重新启用格式化规则。 我现在建议大多数新项目不要包含eslint-config-prettier。...结论 格式化和linting是两个单独的问题。将两者混合可能会对你的开发工具的性能和可理解性产生负面影响。我的标准存储库模板,create-typescript-app,明确将两者分开。...如果你的 ESLint 配置引用了eslint-config-prettier,我建议你尝试将其从配置中删除。你可能不再需要它了。

1K10

以淘宝店铺为例,谈谈 TypeScript ESLint 规则集考量

前言 ESLint 在项目中已经是大家见惯不惯的存在,你可能很厌烦动不动跳出来的 ESLint 报错,也可能很享受经过统一校验的工工整整的代码,无论如何,我的意见是,在稍微正式点的项目中都要有 ESLint...={true} />)等、还有一点值得一提,ESLint 并不会一直尝试去简化你的代码,在很多情况下它会要求你写更多代码来换取可读性和安全性的提升,尤其是在 TypeScript 场景下,explicit-module-boundary-types...本文来自于我在所在团队(淘宝店铺)内部制定、落地、推广 ESLint 规则集的收获,将会简要的介绍一批我认为在 TypeScript 分享中非常有必要的规则,通过这篇文章,你会了解到在制定规则时我们考虑的是什么...ban-types 禁止部分值被作为类型标注,此规则能够对每一种被禁用的类型提供特定的说明来在触发此规则报错时给到良好的提示,场景如禁用 {}、Function、object 这一类被作为类型标注, 为什么...推荐在规则配置中仅开启 allowNumber 来允许数字,而禁止掉其他的类型,你所需要做得应当是在把这个变量填入模板字符串中时进行一次具有实际逻辑的转化。

2.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在老项目中集成Eslint【02】

    初期接触 ESLint 时觉得太难,是因为过太过于迷信权威。比如 Airbnb 公司的 JavaScript 风格,在 GitHub 上受到了很大的好评,其实我自己也非常认可这样的编码风格。...其次关于eslint:recommended在阅读过大多数的开源项目后可以发现绝大部分并没有使用官方内置的这一规则,大多数作者都会选择airbnb团队的规范,秉着借鉴和学习的思路,我觉得团队中可以学习这一看法...这样当Prettier格式化代码的时候,依然能够遵循我们的Eslint规则。如果你禁用掉了所有和代码格式化相关的Eslint规则的话,该插件可以更好得工作。...所以你可以使用eslint-config-prettier禁用掉所有的格式化相关的规则(如果其他有效的Eslint规则与prettier在代码如何格式化的问题上不一致的时候,报错是在所难免的了) @typescript-eslint...vue项目基础模板 讲了这么多,这里先来一份不包含prettier的基础模板,关于集成其他的配套工具我们在后续来实现。

    1.3K30

    使用ESLint + Prettier简化代码 Review 过程

    在最近的一个项目中,我们通过设置 ESLint 和 Prettier 来进行自动化语法检查,并对 JavaScript 项目的代码风格管理。 为什么自动 Lint 和代码风格很重要?...Prettier 扫描文件中的样式问题,并自动重新格式化代码,以确保缩进、间距、分号、单引号和双引号等遵循一致的规则。 我们的团队正在使用它们,因为: 他们按照相同的规则使每个人都保持一致。...如果你曾经尝试过将 Prettier 和 ESLint 放在一起运行,那么可能会遇到规则冲突。别担心!你不是在孤军奋战。...eslint-config-prettier 插件【https://github.com/prettier/eslint-config-prettier】将自动禁用所有 ESLint 的规则冲突。...自动化 lint 和代码格式化可以提高开发人员的工作效率,通过捕获错误和使开发人员保持一致,使你的团队在进行代码 review 时把精力集中在更有意义和更高效的事情上。 尝试使用 Zeit Now。

    1.5K40

    Eslint该如何配置?Eslint使用以及相关配置说明

    需要将 ESLint 限制到一个特定的项目、目录时,可以在项目根目录下的 package.json 文件或者 .eslintrc.* 文件里的 eslintConfig 字段下设置 "root": true...’); // 在整个文件中取消eslint检查: /* eslint-disable */ alert(‘foo’); // 在整个文件中禁用某一项eslint规则的检查: /* eslint-disable...no-alert */ alert(‘foo’); // 在整个文件中禁用多项eslint规则的检查: /* eslint-disable no-alert, no-console */ alert...在 ESLint 中,插件可以暴露额外的规则以供使用。为此,插件必须输出一个 rules对象,包含规则 ID 和对应规则的一个键值对。...你可以使用注释或配置文件修改你项目中要使用的规则。

    3.5K40

    代码规范之-理解ESLint、Prettier、EditorConfig

    在 JSLint 的基础上提供了一定的配置项,给了开发者较大的自由,但无法添加自定义规则; Zakas创建ESLint的初衷就是觉得当时的JSHint存在局限性,无法添加自定义规则。.../* eslint-disable no-alert, no-console */ --禁用某些规则 // eslint-disable-line --当前行上禁用规则 // eslint-disable-next-line...--下一行上禁用规则 复制代码 具体参考:eslint.bootcss.com/docs/user-g…; 使用ESLint 安装 ESLint ESLint 可以安装在当前项目中或全局环境下,但因项目间存在的差异性...在代码格式化时采用Perttier规则,而我们代码校验使用的是ESLint,如果同一个规则配置不一致,往往就会出现冲突问题; 比如:字符串单、双引号的配置,eslint fix后把字符串变成单引号,再次编辑文件后...有时会遇到团队制定特别严格的规则校验,且在每次代码提交时,收集检查结果作为代码质量评估的重要指标。个人认为这种方式固然可以量化一部分代码质量考核问题 ,但形式主义过重。不过也是廖胜于无的做法。

    2.9K30

    Anthony Fu 对于 Prettier 的看法

    我找不到合适的方式来表达我对 Prettier 的看法。但这一次,我想我应该尽力去表达清楚,以供将来作参考。 首先,我并不反对使用 Prettier。实际上,我还挺喜欢它的。...在这篇文章中,我会尝试给出为什么我要这么做的理由: 它是固执己见的 Prettier 形容它自己是 "一个固执己见的代码格式化工具"。...不需要我特别指出,想必你应该有了"哪个看起来更漂亮"的答案。在我看来,Prettier 的规则太过严格了。事实上,它使代码更难以阅读和修改,违背了格式化代码的最初目标 - 使代码更具可读性。...通常的做法是使用 eslint-config-prettier 来在 ESLint 中使用禁用这些重叠规则(以及一些其他解决方案)。 但是,这种方法也给我带来了很多麻烦: 我的观点如下: 1....在不需要很多定制化的时候,我仍然会是一个快乐的 Prettier 用户。但在管理我个人的开源项目源码时,我会选择只使用 ESLint。 希望这能够清楚地表达我的想法,也许希望能给你一些启发。干杯!

    13310

    VUE3.0 解决eslint 报错的4个办法

    undefined 这里在创建项目的时候 ,使用到代码检测工具eslint的报错 要解决ESLint报错,有以下几个方法: 1:忽略错误: 如果确定某个错误不是问题,可以在.eslintrc文件中添加一个规则来忽略它...更改规则: 想更改max-len规则(每行的最大字符数)的最大值为120,可以在.eslintrc文件中添加以下配置: { "rules": { "max-len": ["error", {..."code": 120}] } } 3:禁用插件: 如果不想使用某个插件,可以在.eslintrc文件中禁用它。..."off" } } 将vue插件禁用,并将vue/no-unused-vars规则(未使用Vue模板中的变量)设置为off,以避免ESLint报告这个错误。...4:修复错误: 如果修复某个错误,可以使用ESLint自带的--fix选项来自动修复代码。可以运行以下命令来修复项目中的所有ESLint错误: eslint --fix .

    3.6K30

    关于eslint

    ,写入 json 配置 image.png 禁用其他代码格式插件 此时,eslint 的vscode 配置好了,同时也要注意,如果你的 vscode 安装了自动辅助代码格式的插件,请在项目的工作区禁用。...额外的规则和格式化方法能够在运行时指定。 规则和对应的格式化方法并不强制捆绑使用。 每条规则都是各自独立的,可以根据项目情况选择开启或关闭。 用户可以将结果设置成警告或者错误。...ESLint 并不推荐任何编码风格,规则是自由的。 所有内置规则都是泛化的。...ESLint规则 Possible Errors (JavaScript 代码中可能的错误或逻辑错误) 规则 解释 no-console 禁用 console no-await-in-loop...function 声明 no-irregular-whitespace 禁止在字符串和注释之外不规则的空白 no-obj-calls 禁止把全局对象作为函数调用 no-regex-spaces

    3K20

    将React项目从webpack升级到Vite

    在之前,已经很多朋友已经升级到了vite,但是大部分都是vue的项目,那么今天我们把之前webpack的react项目升级到vite!...PS:这个网站永远免费,里面还有大量前端免费学习资料,为此,我把这个项目抽离了业务部分,然后做成了一个简单的项目模板 正式开始 如果你没看过我之前写的:webpack和vite的核心区别,建议你先看一遍.../JinJieTan/Peter-/tree/master/vite-react-ts-antd 将你的src源码目录植入我的项目模板中 项目根目录执行yarn安装依赖 index.hmtl入口文件,我这里默认是去加载...脚手架说明: 通过husky在每次git commit 时候使用prettier统一美化代码,再通过eslint进行代码检测,最终使用commitlint提交信息是否符合要求,以此保证代码质量 这几十条规则...,都是我一条一条精挑细选出来的,因为我不喜欢用不清楚别人细节的东西,这套规则我也希望大家用下去,每一条都有注释 rules: { semi: ['error', 'always'],

    3.2K30

    JavaScript生态加速攻略:eslint

    他基本上是通过消除 matches() 函数中的一堆开销来实现的,这使他也能够简化几个相关的辅助函数。例如,他注意到模板字符串的转译效果不佳。...到目前为止,我们看了实现细节,但我们实际上正在处理什么样的选择器?有没有潜力缩短其中的一些?为了测试这个理论,我首先需要更好地了解正在处理的选择器的类型。毫不奇怪,大多数选择器都很短。...回想一下,我所工作的每个项目几乎都有几个自定义linting规则和大约2-5个额外的eslint插件或预设。但更重要的是,它们完全切换了解析器。...我强烈建议访问该网站并尝试使用各种代码片段进行操作。这将帮助你更好地了解我们工具的AST格式有多相似或者多不同。 然而,在 eslint 的情况下存在一个问题。...“eslint的未来”讨论包含了许多伟大的想法,这些想法可以使 eslint 变得更好,潜在地更快。我认为棘手的问题是避免一次性尝试解决所有问题,因为在我的经验中,这通常注定会失败。

    67320

    2016 JavaScript 技术栈展望

    好在这一现象正在退热,优胜劣汰,优秀的项目慢慢沉淀下来,开发方式也越来越清晰。有些开发者正在尝试使用基于上述技术的框架进行开发,也在一定程度上减少了学习成本。...本文中主要介绍了一些我在 web 应用开发中所涉及和推崇的技术,其中有一些技术上存在争议,所以我对于每一技术都只做简单的介绍和分析。...开发者可能会本能地去尝试抽象出一个 Redux 模板,这么做有诸多好处,但请在认清需求的基础上来封装模板,而不要盲目的去尝试。...当然这份规范中尚有不足之处,但保持团队整体代码的一致性,可以有效提高代码的可读性。 当你熟悉了 ESLint 之后,建议开发者深入地尝试其中的规则。ESLint 捕获的错误越多,产品的稳定性越高。...这里有一个基于 Electron、React 和 hot reload 的模板,尝试一下吧。

    2.1K40

    前端规范落地,团队级的解决方案

    跟着我一步一步去做,一定可以将规范落地。 问:要不要制定编码规范?要不要使用 ESLint ?要不要规范化 git 的提交 ? 答:非个人项目 我都建议遵循团队或主流的规范进行编码。...我选在不需要:n ? Save this as a preset for future projects? (y/N) n 经过漫长的等待,项目就创建成功了。...运行项目: cd 项目目录 npm run serve 2、配置 ESLint 规则 ESLint 是代码检测工具,在上一步创建项目的操作中,我们已经把 ESLint 集成在项目中了。...* 比如:在项目中是否允许使用 console ? 是否允许使用双引号包裹字符串?...如果你的团队是习惯使用双引号,习惯在语句后面加分号,这些配置可以百度查查,本文不打算在 编码规范 上深入讲解,因为每个团队的风格不同。

    81440

    熬夜准备的一个React项目升级Vite的指南

    写在开头 在之前,已经很多朋友已经升级到了vite,但是大部分都是vue的项目,那么今天我们把之前webpack的react项目升级到vite!...,为此,我把这个项目抽离了业务部分,然后做成了一个简单的项目模板 正式开始 如果你没看过我之前写的:webpack和vite的核心区别,建议你先看一遍,再来看这篇文章 webpack迁移到vite,最先要解决的事情.../JinJieTan/Peter-/tree/master/vite-react-ts-antd 将你的src源码目录植入我的项目模板中 项目根目录执行yarn安装依赖 index.hmtl入口文件,我这里默认是去加载...: 通过husky在每次git commit 时候使用prettier统一美化代码,再通过eslint进行代码检测,最终使用commitlint提交信息是否符合要求,以此保证代码质量 rules: {...,可以优先取default属性,如果取不到,就取默认的 写在最后 看得再多,不如直接动手实践,克隆我这个模板下来试试把。

    1.3K20

    Vue3学习笔记(八)—— Vite、ESLint

    vue-cli 构建的项目在开发模式下还是有比较大的区别: Vite 在开发模式下不需要打包可以直接运行,使用的是 ES6 的模块化加载规则;Vue-CLI 开发模式下必须对项目打包才可以运行...这意味着您可以关闭每个规则,只能使用基本语法验证,或者混合并匹配捆绑的规则和自定义规则,使 eslint 完美的适用于当前项目。...2.5.3、禁用规则 使用配置注释 (1)、禁用所有规则 要在你的文件中暂时禁用规则警告,可以使用以下格式的块状注释: /* eslint-disable */ alert('foo'); /* eslint-enable...要禁用整个文件中的规则警告,在文件的顶部写入 /* eslint-disable */ 块注释: /* eslint-disable */ alert('foo'); 你还可以在整个文件范围内禁用或启用特定规则...ESLint 不要报告被禁用的代码违反规则。

    13.4K10

    深入浅出 Eslint,告别 Lint 恐惧症

    前言 相信大多数同学在日常项目中对于 Eslint 相关配置感到痛不欲生。 对于 Lint 配置的不了解导致项目中总是会莫名其妙的提示报错,这应该是大多数同学面临的窘境。...这也就意味这,在 projectA 项目中不仅仅 projectA/.eslintrc.js 中的配置规则会生效,同时它也会继承上一层目录中的 .eslintrc 的配置(.eslintc.js)。...之后在当前插件目录运行yo eslint:rules,当前终端会以问询的方式来为我们创建对应的规则模板: 接下来我们来看看 lib/rules/no-function-expression.js 中具体的模板内容...上述这个问题,EsLint 插件开发同样为我们提供了一个 context.report.fix 属性用于尝试为我们的错误进行自动修复。...结尾 文章重心更多的是想为大家起到一个抛砖引玉的作用,对于 EsLint 我相信大多数同学在开发中对于它接触的并不是很多。

    2K20

    【转】指定文件、指定行、指定代码块不使用 ESLint 语法检查

    指定文件、指定行、指定代码块不使用 ESLint 语法检查 在使用了 eslint 进行代码检查后,可以大幅提高我们的代码规范。但是,在某些情况下,我们必须去写一些违反规则的代码。...这种情况下,如果不去处理,则会导致项目警告越来越多,最终不知道哪些是必须的,哪些是可以修正的。 因此,在某些地方,禁用检查就变得十分重要了。.../* eslint-disable */ alert('foo'); /* eslint-enable */ 对指定规则的启用或者禁用警告 将需要忽略的代码块用注释包裹起来 /* eslint-disable...alert('foo'); // eslint-disable-line // eslint-disable-next-line alert('foo'); 在指定行上禁用指定的某个规则alert(...'foo'); // eslint-disable-line no-alert // eslint-disable-next-line no-alert alert('foo'); 在某个特定的行上禁用多个规则

    1.7K30

    VS Code书写vue项目配置 eslint+prettier 统一代码风格

    [005BYqpggy1fx1vhwz1y8j30w00k0t9t.jpg] 前言 以前公司的vue项目只是我一个人在写,代码风格统一,但是后来随着团队增加,统一的代码风格就越来越重要。...我的主力工具是sublime,ws辅助,vscode基本很少使用(就下载安装放在冷宫),但是听说用来写vue项目还不错,就开启了一番折腾。...另外这里有个坑, Beautify插件会占用格式化代码的快捷键,因此会和prettier产生冲突,所以直接禁用掉。...的一些规则和eslint的一些规则可能存在冲突,例如prettier字符串默认是用双引号而esLint定义的是单引号的话这样格式化之后就不符合ESLint规则了。...所以要解决冲突就需要在Prettier的规则配置里也配置上和ESLint一样的规则,直接覆盖掉,ESLint和Prettier的配置文件内容如下: .eslintrc.js 配置使用单引号、结尾不能有分号

    7.6K60
    领券