码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 项目架构之 -- 提交代码时的ESLint校验


    文章目录

        • 准备工作【生成项目】
        • 第一步 - 安装所需依赖
        • 第二步 - 配置规则
            • 2.1 配置ESLint规则
            • 2.2 配置prettier规则
            • 2.2 配置package.json
        • 第三步 - 测试

    对于一个项目的架构来讲代码格式的统一是必不可少的。如果一个项目里面各种语法杂乱无章,对于后续的维护工作也是很恼火的。代码写的不优雅会被别人吐槽死~

    我们在做架构的时候一定要尽量的将标准大众化,这样才能让更多的人接受。

    准备工作【生成项目】

    以react为例,用脚手架生成一个项目,目录结构如下【不需要一致,仅供参考】:

    【这里放个图】

    介绍下我们需要使用的npm模块

    npm模块功能介绍
    huskygit的钩子,在git的hook中执行一些命令
    lint-stafed对git暂存的文件进行lint检查
    eslintjs代码检测工具
    prettier代码格式化模块

    第一步 - 安装所需依赖

    cnpm install prettier husky lint-staged eslint -S
    
    • 1

    第二步 - 配置规则

    2.1 配置ESLint规则

    在项目中执行以下命令进行初始化eslint文件

    ./node_modules/.bin/eslint --init
    
    • 1

    选择eslint的提示选项:
    【这里配个图】

    在项目根目录新建.eslintrc.json文件。在rules选项中加规则:

    "rules": {
    	"no-dupe-keys": "error", // 禁止对象字面量中出现重复的key
    	"no-duplicate-case": "error", // 禁止出现重复的case标签
    	"no-empty": ["error", { "allowEmptyCatch": true }], // 禁止出现空语句块,catch可以
    	"no-ex-assign": "error", // 禁止对catch子句的参数重新赋值
    	"no-extra-boolean-cast": "error", // 禁止不必要的布尔转换
    	"curly": "error", // 强制所有控制语句使用一致的括号风格
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    更多校验规则见:eslint官网

    2.2 配置prettier规则

    在项目根目录下新建.prettierrc文件

    {
    	"printWidth": 100, // 代码换行长度
    	"tabWidth": 2, // 代码缩进空格数
    	"useTabs": true, // 使用tab缩进而不是空格缩进
    	"semi": true, // 是否需要代码尾分号
    	"singleQuote": true, // 是否使用单引号
    	"bracketSpacing": true, // 对象内是否加空格
    	"arrowParens": "avoid", // 单个参数的箭头函数不加括号
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    更多配置见:prettier官网

    2.2 配置package.json

    增加husky 和 lint-staged的配置

    "husky": {
    	"hooks": {
    		"pre-commit": "lint-staged"
    	}
    },
    "lint-staged": {
    	"src/**": [
    		"prettier --config .prettierrc --write",
    		"eslint --fix",
    		"git add"
    	]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    第三步 - 测试

    我们现在就是需要来检验一下是否配置成功了,我们先修改一些文件,然后执行:

    git add .
    git commit -m "test"
    
    • 1
    • 2

    此时就会进行eslint检验,如果有错误的话commit会失败把错误信息暴露出来。

  • 相关阅读:
    RocketMQ学习(3) 秒杀实战
    【完全二叉树魔法:顺序结构实现堆的奇象】
    Scala基础教程--13--函数进阶
    华为如何建立“以项目为中心”的运作体系?华为项目经理就是CEO
    【Linux 网络】高级 IO -- 详解
    网络通信编程基础,BIO,NIO
    ExoPlayer添加Ffmpeg扩展实现软解功能
    cpp中this和*this区别
    GRU的 电影评论情感分析 - python 深度学习 情感分类 计算机竞赛
    瀑布流使用虚拟列表性能优化
  • 原文地址:https://blog.csdn.net/weixin_43606158/article/details/112567101
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号