在软件开发过程中,代码风格检查(Code Linting)是保障代码规范和一致性的有效手段。过去,Lint 的工作一般在 Code Review 或者 CI 的时候进行,但这样会导致问题的反馈链,浪费不必要的时间。因此,我们需要利用 Git 的 Pre Commit 钩子,将 Lint 过程放到开发者提交代码之前。

本文将会重点介绍如何使用 husky 和 lint-staged 来检查 Node.js 项目的代码一致性。其中 husky 用于设置本地的 Git 钩子,lint-staged 会让钩子只检查本次提交所修改的文件。

安装 husky 和 lint-staged

首先,我们使用下面的命令把 husky 和 lint-staged 安装到 Node.js 项目的 devDependencies 中:

$ npm install husky lint-staged --save-dev
复制代码

如果你使用的是 Yarn,请使用下面的命令

$ yarn add husky --dev
复制代码

修改 package.json 配置

将下面的代码加入 package.json文件中:

{"husky": {"hooks": {"pre-commit": "lint-staged"}},"lint-staged": {"src/**/*.ts": ["tslint --project . --format stylish"],"src/**/*.{css,scss}": ["stylelint --config src/stylelint.config.json"]}
}
复制代码

这样,当在终端输入 git commit 命令提交代码的时候,Lint 程序便会自动检查本次提交所修改的文件是否符合本项目的代码规范。如果代码不符合规范,便会拒绝提交代码。

如果想要跳过 Lint 程序,可以使用 git commit -no-verify 进行提交。

查看原文: myanbin.github.io/post/lintin…

使用 husky 和 lint-staged 检查 Node.js 的代码一致性相关推荐

  1. node/js 漏洞_6个可用于检查Node.js中漏洞的工具

    node/js 漏洞 Vulnerabilities can exist in all products. The larger your software grows, the greater th ...

  2. WebStorm 打开Node.js的代码提示功能

    Node.js coding assistance is disabled,Suggests configuring coding assistance for Node.js core module ...

  3. node.js 后台代码怎么部署到服务器上?

    服务器先安装node 安装node,进入到想要把node下载到的那个文件夹下.本文是/usr/local cd /usr/local wget https://nodejs.org/dist/v8.9 ...

  4. UDP IPv4广播地址计算(附Node.js示例代码)

    文章目录 目的 计算方法 示例代码 代码演示 总结 目的 UDP广播是比较常用的一种功能,应用方面来说经常用在设备发现等功能中.UDP广播需要知道广播地址,这篇文章将介绍通过IPv4地址和子网掩码来计 ...

  5. 成为自信的node.js开发者(一)

    这个博客是我最近整理了过去的文章. 适合阅读的同学 想更进一步深入理解node的同学,如果你已经稍微了解一点点node, 可以用node做一些小demo,并且想更深一步的了解,希望这篇文章可以帮助到你 ...

  6. Node.js基础总结

    一.Node.js简介 什么是Node.js js 属于一种脚本性语言,然而脚本语言运行需要一个解析器来解析,对于我们原来写的 js 代码大部分都是运行在网页上,所以浏览器本身就担当了解析器的角色.而 ...

  7. node.js和npm版本升级及升级过程中遇到的问题和解决方案

    Node.js和NPM版本升级 1. 安装Node.js 1.1 版本检查 1.2 下载安装程序 1.3 安装 2. npm升级 2.1 版本检查 2.2 升级 3. 检查Node.js和npm之间的 ...

  8. 在Ubuntu 14.04上设置生产环境可用的Node.js

    在Ubuntu 14.04上设置生产环境可用的Node.js 提供:ZStack社区 前言 Node.js是一个开源的JavaScript运行时环境,开发者可以用它方便的构建服务器端应用和网络应用.N ...

  9. windows node.js 安装

    最近基础到vue 看到vue-cli 我以前是用vue.js 文件渲染前台的文件 那么vue-cli是干嘛的啊 带着疑问,带着好奇,我看到了一篇博客 https://blog.csdn.net/muz ...

最新文章

  1. HTML自动换页相册,html版电子相册翻书特效
  2. python代码示例下载-Python下载网易云歌单歌曲的示例代码
  3. Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具
  4. .NET平台开源项目速览(12)哈希算法集合类库HashLib
  5. linux16.04添加用户,Ubuntu16.04下添加新用户
  6. Struts2漏洞分析,漏洞波及全系版本
  7. Picasso源码的简单解析(二)
  8. python3--命名空间字典
  9. 51单片机的矩阵键盘、跑马灯和呼吸灯设计
  10. ManualResetEvent
  11. free video java hd_0326 iframe和video experience
  12. b站的服务器在哪个文件夹,b站缓存的视频在哪个文件 具体操作步骤
  13. php 微信h5支付 mweb,php微信H5支付讲解(MWEB)
  14. 在VM虚拟机上装“黑苹果
  15. 新猿木子李:0基础学python培训教程 什么是前端
  16. 找出直系亲属-cpp
  17. Chip-seq数据寻找Indel
  18. 项目部署到SVN上以及SVN修改项目名称详细步骤
  19. win7 查看php版本信息,window_Windows系统版本怎么看?2种查看windows版本的方法介绍,前段时间微软正式开始向Win7和 - phpStudy...
  20. asp.net英语四六级考试报名系统

热门文章

  1. 绕月飞行维生系统进展如何?美国人准备好了吗
  2. iscsi网络存储介绍及客户端配置操作
  3. Linux字符设备驱动框架
  4. CSS-带尖角的对话框
  5. 与其他Javascript类库冲突解决方案
  6. mac iTunes启动失败,声称iTunes文件夹被锁定
  7. 自制Ghost XP SP3 启动光盘(二)
  8. c:forEach 取 map的值
  9. 腾达fh365虚拟服务器,腾达(Tenda)FH365路由器怎么设置?
  10. 登录方式2:windows命令行