emo——给项目配置prettier,eslint,husky加强协作规范

简介: emo——给项目配置prettier,eslint,husky加强协作规范

前言

给自己的一个初始化项目配置一些规范;

Prettier - Code formatter: Prettier - Code formatter

ESLint: ESLint

Git gitignore: https://git-scm.com/docs/gitignore#_pattern_format

内容

说实话整个配置起来,如果自己从头到尾看文档搞,真的有点耗时间;

主要分为prettier,eslint,husky三部分做配置,最后加上vscode对应的插件;

后续根据实际开发中遇到的坑会再往这里添砖加瓦;

prettier

prettier cli: https://prettier.io/docs/en/cli.html

prettier options: https://prettier.io/docs/en/options.html

prettier ignore: https://prettier.io/docs/en/ignore.html

安装

pnpm add -D prettier

配置.prettierrc

?> 在项目的根目录添加.prettierrc文件

!>详细参数请查看prettier options文档;

{
    "printWidth": 100,
    "tabWidth": 4,
    "useTabs": false,
    "semi": false,
    "singleQuote": true,
    "trailingComma": "none",
    "bracketSpacing": true,
    "bracketSameLine": true
}

配置.prettierignore

?> 在项目的根目录添加.prettierignore文件,并根据自身实际情况配置;

!>详细参数请查看prettier ignore文档;

node_modules/**
dist/**
release/**
public/**
docs/**

ESlint

ESlint getting-started: http://eslint.cn/docs/user-guide/getting-started

ESlint configuring: http://eslint.cn/docs/user-guide/configuring

ESlint ignoring-code: the-eslintignore-file

安装

pnpm add -D eslint

初始化配置

?> 配置文件eslint

npx eslint --init

!> 安装完成后提示缺少依赖,所以又安装了下依赖pnpm add -D @typescript-eslint/parser

module.exports = {
  env: {
    browser: true,
    es2021: true,
    node: true
  },
  extends: [
    'plugin:vue/vue3-essential',
    'standard-with-typescript',
  ],
  overrides: [
  ],
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module'
  },
  plugins: [
    'vue'
  ],
  rules: {
  }
}

配置eslint-plugin-prettier及忽略文件

pnpm add -D eslint-config-prettier eslint-plugin-prettier
module.exports = {
    env: {
        browser: true,
        es2021: true,
        node: true
    },
    extends: [
        'plugin:vue/vue3-essential',
        'standard-with-typescript',
        'plugin:prettier/recommended'
    ],
    overrides: [],
    parserOptions: {
        ecmaVersion: 'latest',
        sourceType: 'module',
        project: ['tsconfig.jsong']
    },
    plugins: ['vue'],
    ignorePatterns: ['node_modules/**', 'dist/**', 'release/**', 'public/**', 'docs/**'],
    rules: {}
}

husky

安装

pnpm add -D husky lint-staged
npx husky install
npm set-script prepare "husky install"
npx husky add .husky/pre-commit "npx lint-staged"

配置package.json

{
"lint-staged": {
    "**/*.{vue,js,ts}": [
        "prettier --write --ignore-unknown",
        "eslint --fix",
        "git add ."
    ]
  },
}

提交

?> 在git commit时就会去检测并进行修复;

问题

parserOptions.project

执行命令的时候报错parserOptions.project

parserOptions.project 报错信息

Error: Error while loading rule '@typescript-eslint/dot-notation': You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.

解决方案

?> 在eslintrc.js的parserOptions配置项下配置project | stackoverflow;

.eslintrc.js

module.exports = {
    env: {
        browser: true,
        es2021: true,
        node: true
    },
    extends: [
        'plugin:vue/vue3-essential',
        'standard-with-typescript',
        'plugin:prettier/recommended'
    ],
    overrides: [],
    parserOptions: {
        ecmaVersion: 'latest',
        sourceType: 'module',
        project: ['tsconfig.jsong']
    },
    plugins: ['vue'],
    rules: {}
}

tsconfig.json

{
    "compilerOptions": {
        "target": "ESNext",
        "module": "ESNext",
        "moduleResolution": "node",
        "importHelpers": true,
        "jsx": "preserve",
        "esModuleInterop": true,
        "resolveJsonModule": true,
        "sourceMap": true,
        "baseUrl": "./",
        "strict": true,
        "paths": {},
        "allowSyntheticDefaultImports": true,
        "skipLibCheck": true
    },
    "include": ["src", "electron"],
    "references": [{ "path": "./tsconfig.node.json" }]
}

学无止境,谦卑而行.

目录
相关文章
|
JSON 前端开发 Shell
前端项目添加代码规范(eslint prettier stylelint husky lint-staged commitlint)
前端项目添加代码规范(eslint prettier stylelint husky lint-staged commitlint)
333 0
|
6月前
|
JSON 资源调度 前端开发
前端工具 Prettier 详细使用流程(兼容ESLint)
前端工具 Prettier 详细使用流程(兼容ESLint)
235 0
|
6月前
|
JSON 移动开发 资源调度
前端工具 Prettier 详细使用流程(兼容ESLint)
前端工具 Prettier 详细使用流程(兼容ESLint)
430 0
|
6月前
|
前端开发 程序员 项目管理
Nuxt3 实战 (二):配置 Eslint、Prettierrc、Husky等项目提交规范
这篇文章介绍了项目规范的重要性和如何配置一些工具来提高代码质量、团队协作、降低维护成本、提升软件可靠性和促进项目管理。工具介绍了Eslint和Prettier,并且提供了安装和配置的步骤。文章还提到了如何配置Husky和Commitlint来检查提交风格的规范性,并最后提到了需要使用 release-it 自动管理版本号和生成 CHANGELOG 的任务。
176 0
Nuxt3 实战 (二):配置 Eslint、Prettierrc、Husky等项目提交规范
|
6月前
|
资源调度 JavaScript 前端开发
【源码共读】Vite 项目自动添加 eslint 和 prettier
【源码共读】Vite 项目自动添加 eslint 和 prettier
260 0
|
资源调度 前端开发 JavaScript
【前端规范全攻略】开启高效开发之旅!ESLint + Prettier + husky + lint-staged+Commitizen
如何统一代码风格,规范提交呢? 推荐使用`前端规范全家桶` ESLint + Prettier + husky + lint-staged。
540 0
【前端规范全攻略】开启高效开发之旅!ESLint + Prettier + husky + lint-staged+Commitizen
|
JavaScript 前端开发
从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
256 0
|
前端开发 JavaScript 测试技术
如何在Vue3项目中集成ESLint+Prettier+Stylelint+Husky?
如何在Vue3项目中集成ESLint+Prettier+Stylelint+Husky?
593 0
|
缓存 JavaScript 前端开发
【从零到一手撕脚手架 | 第三节】项目集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
前两节教大家如何初始化一个脚手架项目以及如何封装Vue技术栈常用的工具库。本小节教大家如何向我们的脚手架中配置ESLint、Prettier、StyleLint、LintStage。
534 0
【从零到一手撕脚手架 | 第三节】项目集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
jira学习案例2-eslint和prettier和commitlint
jira学习案例2-eslint和prettier和commitlint
89 0
jira学习案例2-eslint和prettier和commitlint