前端工程化配置-husky + eslint + lint-staged

这篇具有很好参考价值的文章主要介绍了前端工程化配置-husky + eslint + lint-staged。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置目标:每次代码提交前,进行代码格式校验,如未通过则禁止提交,可通过命令进行批量格式修复

配置步骤如下:

一、第一步eslint的配置:

1、下包
npm i eslint -D
或者
yarn add  eslint

2、配置 ESlint
npx eslint --init

然后根据弹出的内容区选择你需要的规范。

1、 你想怎么使用ESLint?

前端工程化配置-husky + eslint + lint-staged
2、 你的项目使用哪个规范?

前端工程化配置-husky + eslint + lint-staged
3、你的项目使用哪个框架开发?

前端工程化配置-husky + eslint + lint-staged
4、你的项目使用 TypeScript 了吗?

前端工程化配置-husky + eslint + lint-staged 
5、你的代码在哪里运行?

前端工程化配置-husky + eslint + lint-staged
6、你希望你的配置文件的格式是什么?

前端工程化配置-husky + eslint + lint-staged
7、需要再额外安装一些依赖包

前端工程化配置-husky + eslint + lint-staged

当你的文件栏中出现 .eslintrc.js,就说明安装成了。

二、第二步husky(哈士奇)配置

1.安装 husky

npm install husky --save-dev
or
yarn add husky --save-dev


2.修改 package.json 中 scripts 字段

"scripts": {
   "prepare": "husky install"
}
前端工程化配置-husky + eslint + lint-staged
3.生成 .husky 文件夹 

npm run prepare
or
yarn prepare

此时在当前项目的根目录下会生成一个 .husky 文件夹

前端工程化配置-husky + eslint + lint-staged

4.生成 pre-commit 文件

 npx husky add .husky/pre-commit
or
yarn husky add .husky/pre-commit
在当前项目的 .husky 文件夹中创建了一个 pre-commit 文件

前端工程化配置-husky + eslint + lint-staged

5.修改 pre-commit 文件

npx lint-staged

前端工程化配置-husky + eslint + lint-staged

6.安装 lint-staged

lint-staged 是文件过滤器,它只会校验你提交或者说你修改的部分内容

npm install lint-staged --save-dev
or
yarn add lint-staged --save-dev

7.配置 package.json

 "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.{js,jsx,ts,tsx}": [
      "prettier --write",
      "eslint --fix"
    ]
  }
前端工程化配置-husky + eslint + lint-staged
8.测试 

找一个文件测试是否配置成功,增加一行无法通过 eslint 的代码

提交时就会报错拦截

最终配置截图:
前端工程化配置-husky + eslint + lint-staged

你以为到此为止了?

其实并没有,现在还不是毕竟完美的,针对react框架的话,应该基本够了,但是针对vue的话还存在一些瑕疵,如下:
eslint只对vue中js部分有效,template和css没有校验,基于此进行升级,需要搭配prettier进行使用,有的道友要问,为什么要搭配使用呢,我就想用其中的一种不行吗?答案是需要根据你具体的需求去进行组合,虽然说 ESLint 其实也具备一定的代码风格的格式化能力,但是在实践中,我们一般采用 ESlint 来做代码质量的约束,用 Prettier 来做代码风格的约束。

需要安装一些插件

"@vue/eslint-config-prettier": "^6.0.0",
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-prettier": "^3.1.4",
"prettier": "^1.19.1",
"prettier-eslint": "^11.0.0",

然后.eslintrc文件更改一下配置: 

前端工程化配置-husky + eslint + lint-staged

然后关掉vscode编译器重启就生效了

下面对安装以上插件做一些解释:

其实核心思路就是把prettier集合到eslint中,即扩展其功能

规则冲突

当 ESLint 的规则和 Prettier 的规则相冲突时,就会发现一个尴尬的问题,用其中一种来格式化代码,另一种就会报错。

prettier 官方提供了一款工具 eslint-config-prettier 来解决这个问题。

本质上这个工具其实就是禁用掉了一些不必要的以及和 Prettier 相冲突的 ESLint 规则。

整合使用

上面介绍的工具,仅仅只是将部分 ESLint 规则给禁用了,避免 Prettier 格式化之后的代码导致 ESLint 报错而已,如何将两者结合起来使用呢?

prettier 官方提供了一个 ESLint 插件 eslint-plugin-prettier。

这个插件的主要作用就是将 prettier 作为 ESLint 的规则来使用,相当于代码不符合 Prettier 的标准时,会报一个 ESLint 错误,同时也可以通过 eslint --fix 来进行格式化。文章来源地址https://www.toymoban.com/news/detail-408058.html

到了这里,关于前端工程化配置-husky + eslint + lint-staged的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端工程化

    手把手带你走进Babel的编译世界 - 掘金 (juejin.cn) 我们所写的代码转换为机器能识别的一种 树形结构, 本身是由一堆节点(Node)组成,每个节点都表示源代码中的一种结构。 不同结构用类型(Type)来区分,常见的节点类型有Identifier(标识符),Expression(表达式),VariableDeclarat

    2023年04月11日
    浏览(101)
  • 前端工程化-NPM

    NPM代表npmjs.org这个网站,这个站点存储了很多Node.js的第三方功能包。 NPM的全称是Node Package Manager,它是一个Node.js包管理和分发工具,已经成为非官方的发布Node模块(包)的标准。它可以让JavaScript开发者能够更加轻松地共享代码和共用代码片段,并且通过NPM管理需要分享的代

    2024年02月09日
    浏览(102)
  • 前端工程化-VUE

    高效的开发离不开基础工程的搭建。本章主要介绍如何使用Vue进行实际SPA项目的开发,这里使用的是目前热门的JavaScript应用程序模块打包工具Webpack,进行模块化开发、代码编译和打包。 Vue脚手架指的是Vue-cli,它是一个专门为单页面应用快速搭建繁杂程序的脚手架,它可以轻

    2024年02月08日
    浏览(79)
  • 什么是前端工程化?

    前端工程化是一种思想,而不是某种技术。主要目的是为了提高效率和降低成本,也就是说在开发的过程中可以提高开发效率,减少不必要的重复性工作等。 tip 现实生活举例 建房子谁不会呢?请几个工人一上来就开始弄,在建筑的过程中缺了材料就叫个工人去买,发现工期

    2024年02月15日
    浏览(85)
  • 前端工程化相关

    知道软件包名,拿到源码或者路径的方法 在浏览器输入以下内容,就可以找到你想要的。。。 unpkg.com/输入包名 ESM特性清单: 自动采取严格模式,忽略“use strict” 每个ESM模块都是单独的私有作用域; ESM是通过CORS去请求外部JS模块的 ESM的script标签会延迟执行脚本,就要有

    2024年01月17日
    浏览(109)
  • Ajax及前端工程化

    Ajax:异步的js与xml。 作用: 1、通过ajax给服务器发送数据,并获得其响应的数据。 2、可以在不更新整个网页的情况下,与服务器交换数据并更新部分网页的技术。  1、准备数据地址  2、创建XMLHttpRequest对象,用于和服务器交换数据  3、向服务器发送请求  4、获取服务器响

    2024年02月12日
    浏览(70)
  • 前端工程化知识系列(9)

    👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! 持续性能监控和自动化性能优化在前端开发中非常重要。以下是一些相关工具和实践: 性能监控工具 :工具如Google Lighthouse、WebPageTest、PageSpeed Insights等可以

    2024年02月07日
    浏览(68)
  • 前端工程化与webpack

    能够说出什么是前端工程化 能够说出webpack的作用 能够掌握webpack的基本使用 了解常用plugin的基本使用 了解常用loader的基本使用 能够说出Source Map的作用 前端工程化 webpack的基本使用 webpack中的插件 webpack中的loader 打包发布 Source Map 1.1小白眼中的前端开发vs实际的前端开发 实际

    2024年02月13日
    浏览(80)
  • 前端工程化之 webpack <一>

    编写的代码 ==》经过打包工具(glup、rollup、webpack、vite)本身也是js代码,读取文件操作的, 依赖于 node 环境 = = 》 普通的html 、css 、javascript = = 》 打包到静态服务器 = = 》 跑在用户的浏览器 用于对路径和文件进行处理 在 Mac OS、Linux 和 window 上的路径上是不一样的,部署的

    2024年01月24日
    浏览(75)
  • 前端需要理解的工程化知识

    1.1 Git 常见工作流程  Git 有4个区域:工作区(workspace)、index(暂存区)、repository(本地仓库)和remote(远程仓库),而工作区就是指对文件发生更改的地方,更改通过git add 存入暂存区,然后由git commit 提交至本地仓库,最后push推送到远程仓库。 工作目录 包括.git 子目录(

    2024年02月10日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包