2020最新编辑器集成eslint、prettier、stylelint,git提交预检查代码配置

摘要:
lint-staged从v10.0.0起,使用gitstash来提高速度并在运行时提供备份,运行时必须有一个提交lint-staged从v10.0.0开始,需要Node.js10.13.0或更高版本lint-staged从v10.0.0起,如果linter任务撤消了所有分阶段的更改,则lint-staged将中止提交。要允许创建空提交,请使用该--allow-empty选项lint-staged匹配的文件中,可以执行scripts的命令,也可以直接执行eslint修复命令等。

webstorm

编辑器自动格式化配置:

plugin

webstorm设置搜eslintr、eslint、stylelint,如果没有,搜plugin,安装prettier、eslint、stylelint

image.png

image.png

image.png

image.png

File watchs

设置里搜File watchs,增加prettier,打钩开启自动格式化,则会在保存时自动格式化。

image.png

VS code

  1. 安装 "ESLint" 以及 "Prettier - Code formatter" 插件,打开 VSCode 点击「扩展」按钮,搜索 ESLint、prettier,然后安装即可
  2. 点击左下角的"齿轮图标",点击Setting后上端选择Workspace选项卡,(也可以在项目根目录下创建一个配置文件 .vscode/settings.json),添加以下配置:
{
    //VSCode 中的 ESLint 插件默认是不会检查 `.vue`、`.ts` 或 `.tsx` 后缀的
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "vue",
        "typescript",
        "typescriptreact"],
    //开启保存时自动修复   
    "editor.codeActionsOnSave": {
        //eslint开启
        "source.fixAll.eslint": true,
         //stylelint开启
        "source.fixAll.stylelint": true},
      
    //prettier:保存时自动格式化所有支持文件:javascript/javascriptreact/typescript/typescriptreact/json/graphql
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
      
    //或者仅指定js文件保存自动格式化
    //Set the default
    //"editor.formatOnSave": false,
    //Enable per-language
    //"[javascript]": {
       //"editor.defaultFormatter": "esbenp.prettier-vscode",
       //"editor.formatOnSave": true
    //}
      
    //指定VSCode用于IntelliSense(智能感知)的ts版本,将内置版本更换为工作区版本
    "typescript.tsdk": "node_modules/typescript/lib"}

然后你ctrl+s 你会发现你的文件格式切换了,并且vscode底部出现:

image

git提交预检查

1、安装 husky和link-staged

在安装之前,要先配置好eslint配置或prettier配置

执行以下命令,会自动配置好husky和lint-staged

npx mrm lint-staged

个人理解:

husky:用来给git对应的时机注册钩子的

lint-staged:用来监听文件是暂存文件的

2、编辑 package.json 文件:

注意几点:

  • lint-staged从v10.0.0对原始暂存文件的任何新修改都将自动添加到提交中,不需要手动写入git add 命令,目前网上看到的大部分教程都是带有git add 命令的,如果加了之后,lint-staged会报一个警告,也可能发生意想不到的错误。
  • lint-staged从v10.0.0起,使用git stash来提高速度并在运行时提供备份,运行时必须有一个提交
  • lint-staged从v10.0.0开始,需要Node.js 10.13.0或更高版本
  • lint-staged从v10.0.0起,如果linter任务撤消了所有分阶段的更改,则lint-staged将中止提交。要允许创建空提交,请使用该--allow-empty选项
  • lint-staged匹配的文件中,可以执行scripts的命令,也可以直接执行eslint修复命令等。
  • lint-staged匹配的文件中,如果有多个命令可以写为数组
  • lint-staged支持三种配置方式

package.json

.lintstagedrc

lint-staged.config.js

使用--config-c标志指定配置文件

  • lint-staged匹配的文件是glob模式,如果不带斜杠,会自动把项目中所有包含指定后缀的进行匹配,如果包含斜杠,则会在对应目录下,匹配所有合适的文件
 "scripts": {
   "eslint:fix": "npx eslint --fix --ext ".js,.jsx,.ts,.vue,.html,.md"",
   "eslint:lint": "npx eslint --ext ".js,.jsx,.ts,.vue,.html,.md"",
   "stylelint:fix": "npx stylelint "**/*.css,.less,.scss" --fix"},
"husky": {
  "hooks": {
    "pre-commit": "npx lint-staged"}
},
"lint-staged": {
  "*.{js,jsx,ts,vue,html,md}": "npm run eslint:fix",
  "*.{css,less,scss}": "npm run stylelint:fix"}

3、切记,先 git add,提交到暂存, git commit提交,就会执行lint-staged下配置的校验命令,这里注意:针对提交到暂存的修改的文件代码校验,未修改的文件不会校验,代码没有问题才会被真正提交,如果报出代码错误,需要先修复所有代码错误,才会自动格式化,否则不会先自动格式化。

4、在紧急的情况下,来不及修改代码格式,可以使用 ​git commit --no-verify​ 跳过代码校验。

免责声明:文章转载自《2020最新编辑器集成eslint、prettier、stylelint,git提交预检查代码配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇input中blur失去焦点事件与点击事件冲突时如何解决DevExpress 常用控件使用整理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ASP.NET MVC 文件上传和路径处理

ASP.NET MVC 文件上传和路径处理总结目录   文件的上传和路径处理必须解决下面列出的实际问题:   1.重复文件处理   2.单独文件上传   3.编辑器中文件上传   4.处理文章中的图片路径   5.处理上传地址的变化   一.上传文件和重复文件处理   文件处理的原则是:不在数据库中保存文件,只在数据库中保存文件信息(Hash值等)。采取文...

unity3D游戏开发三之unity编辑器二

转:http://blog.csdn.net/kuloveyouwei/article/details/23020995 下面我们介绍下GameObject,游戏对象/物体,通过游戏对象我们可以创建游戏对象,如灯光、粒子、模型、GUI等。 GameObject菜单 通过Create Other,我们可以创建系统自带的一些游戏对象,具体如下: Partic...

博客园入园手册1——TinyMEC编辑器

     笔者第一次接触博客时,以为想要写博客必须先下一个特定的编辑器软件,不知道博客园有默认编辑器,第一篇博客也写的很不美观,编写博客时不是没有查阅资料,只是对这个方面是第一次,是个完完全全的小白。查阅资料时发现网上的使用教程都说的不清不楚,当时就想一定要写一个详细的教程。关于TinyMEC编辑器没什么使用难度,它和Word很相似,Markdown需要了...

vscode c_cpp_properties setting

vscode c_cpp_properties setting C/C++ 插件用户工程项目配置 .vscode/c_cpp_properties.json 增加如下内容: { "version": 4, "configurations": [ { "name": "mingw-w64-x86...

为什么Editor类型模块中导出的蓝图接口在蓝图编辑器中无法使用—及代码位于引擎不同文件夹的意义

一、问题在UE中添加一些简单的蓝图接口,然后在蓝图编辑器中始终无法找到对应节点,无论是否勾选"Context Sensitive"。因为实现代码非常简单,简单到没有出错的可能,所以就觉得很神奇。好在尽管有很多乱七八糟的干扰信息,但是网上还是有答案https://forums.unrealengine.com/t/c-blueprint-function-n...

发现TypeScript中同名interface接口会自动合并的特性

今天在学习怎么用TypeScript给jQuery写扩展插件时发现一个很有趣的事情 如上图,VS提示我应该在类C中实现b。 我可以同时定义一个重名的接口,而这个接口内容会自动合并。 这再C#中是绝对不允许的,除非在不同的命名空间中。 但如果我在重名接口中定义相同名称的属性会报重名错误。 也就说并不是js中的后定义的覆盖先前定义的内容。 虽然这些接口信息...