美文网首页
代码规范

代码规范

作者: 尤里安的红茶 | 来源:发表于2018-11-20 18:20 被阅读16次

代码规范

作为前端工程化的第一步,就是要统一代码规范。而前端的代码规范,用三个插件就能保证(husky lint-staged prettier)。

安装

命令行如下:
npm i -D husky lint-staged prettier eslint-plugin-prettier eslint-config-prettier

分析

一 husky与 lint-staged 插件

husky是对git操作的周期进行hook的插件,常用的情景是在git commit 操作前对代码进行lint检查以及代码格式化。

lint-staged 配合husky使用的,当中途集成规范后如果进行lint,那往往出现成百上千个错误,为了避免这种情况,该插件的作用就是只对特定(比如 git add)的代码进行检测。

代码示例

//package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.{js,vue}": [
      "eslint --fix",
      "git add"
    ]
  },
}

可以参考这篇文章

二 prettier 插件

prettier是统一代码风格的一个插件。为啥我们有了eslint后,还需要prettier呢,那当然是因为eslint有限制,要统一还是得用prettier。就看看各大大厂,github上的网红项目都用它,也值得我们使用。

安装命令分析

prettier的安装配置较为复杂,需要与eslint共同使用。

安装命令: npm i -D prettier eslint-plugin-prettier eslint-config-prettier

eslint-plugin-prettier 是让eslint用prettier风格就行代码检查,配置代码如下

//.eslintrc.js
{
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

eslint-config-prettier 当eslint 与 prettier冲突时,可以通过该插件避免,配置代码如下:

//.eslintrc.js
{
  extends: [
    'standard', //使用standard做代码规范
    "prettier",
  ],
}

两个插件结合用:

//.eslintrc.js
{
  "extends": ["plugin:prettier/recommended"]
}

可以参考这篇文章

三个插件合一

综合三个插件,先格式化,再eslint修复。

  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.{js,vue}": [
      "prettier --write",
      "eslint --fix",
      "git add"
    ]
  },

最后代码如下

//package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.{js,vue}": [
      "prettier --write",
      "eslint --fix",
      "git add"
    ]
  },
}
//.eslintrc.js 以vue为模板
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/essential',
    '@vue/airbnb',
    "plugin:prettier/recommended",
  ],
  // required to lint *.vue files
  plugins: ['vue'],
  rules: {
    "prettier/prettier": "error",
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    "no-param-reassign": [2, { props: false }],
    "import/no-unresolved": "off",
  },
  parserOptions: {
    parser: 'babel-eslint',
  },
};
//.prettierrc.js
module.exports = {
  "singleQuote": true,
  "semi": true,
  "trailingComma": "all"
}

相关文章

  • Web 端代码规范

    目录 1、代码规范概述 2、代码规范流程搭建 3、代码规范细则 1、代码规范概述 良好的代码规范能够提供软件的可读...

  • 代码规范

    代码规范 1. 概述 欢迎使用前端代码规范, 这里借鉴、引用的是京东前端代码规范。 遵循代码规范的目的在于增强团队...

  • iOS 代码规范篇

    iOS 代码规范篇 iOS 代码规范篇

  • iOS(OC)开发之随感

    1.代码规范 规范很重要!规范很重要!规范很重要! 代码规范的重要性之-为什么谷歌要执行严格的代码编写规范http...

  • 前端学习的基本总结

    目录 1.为什要遵守代码规范 2.css代码规范 3.js代码规范与设计模式3.1 js代码规范3.2 设计模式 ...

  • 乐乎项目优化

    编程: 1、代码规范。架构规范、文件组织规范、命名规范、代码逻辑规范、资源存放。 一、使用cocoapod 二、代...

  • 小肤iOS开发代码规范_v1.0

    For Objective-C , 2018.8.2 Ⅰ.前言Ⅱ.命名规范Ⅲ.代码注释规范Ⅳ.代码格式化规范Ⅴ....

  • 代码规范

    代码规范 1. 概述 欢迎使用代码规范, 这个是我借鉴京东前端代码规范,组织的内部规范。旨在增强团队开发协作、提高...

  • PSR-2- Coding Style Guide 编码风格规范

    代码风格规范 本篇规范是 PSR-1 基本代码规范的继承与扩展。 本规范希望通过制定一系列规范化PHP代码的规则,...

  • PM篇

    PM 技术篇1.开发规范命名规范,异常处理规范,日志规范,统一框架,代码commit规范,代码评审规范,统一API...

网友评论

      本文标题:代码规范

      本文链接:https://www.haomeiwen.com/subject/xtixqqtx.html