当前位置: 首页 > article >正文

pnpm的menorepo项目配置eslint和prettier

1、使用eslint脚手架安装相关依赖并生成对应配置文件

pnpm dlx @eslint/create-config

自动安装了以下几个插件

生成的配置文件如下所示,和csdn其他教程里面不一样,这是因为eslint升级成9.xx版本了

需要node版本20以上

eslint 9.x 升级或使用指南,eslint.config.js 配置,包含 react、typescript、prettier 等常用配置升级迁移 | kshao-blog-前端知识记录

遇到uni is notdefintd

如下配置globals

2、安装prettier

pnpm add eslint-plugin-prettier prettier eslint-config-prettier -D

项目下面新增prettier.config.js

// prettier.config.js
/**
 * @type {import('prettier').Config}
 * @see https://www.prettier.cn/docs/options.html
 */
export default {
  trailingComma: 'all',
  singleQuote: true,
  semi: false,
  printWidth: 80,
  arrowParens: 'always',
  proseWrap: 'always',
  endOfLine: 'lf',
  experimentalTernaries: false,
  tabWidth: 2,
  useTabs: false,
  quoteProps: 'consistent',
  jsxSingleQuote: false,
  bracketSpacing: true,
  bracketSameLine: false,
  jsxBracketSameLine: false,
  vueIndentScriptAndStyle: false,
  singleAttributePerLine: false,
}

注意vscode安装这个插件

2、配置husky

npx husky install

.husky/_/pre-commit

#!/usr/bin/env sh
echo "zhixing husky"
pnpm run fix

3、配置commit-lint

pnpm add -D commitizen @commitlint/config-conventional @commitlint/cli

packages.json里面增加

  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ],
    "rules": {
      "header-max-length": [
        2,
        "always",
        108
      ],
      "type-empty": [
        2,
        "never"
      ],
      "type-enum": [
        2,
        "always",
        [
          "feat",
          "fix",
          "init",
          "docs",
          "style",
          "refactor",
          "perf",
          "test",
          "revert",
          "build",
          "chore",
          "ci"
        ]
      ]
    }
  }

无需其他配置了,在commit时自动会触发commlitint

参考:2024年|ESlint9+Prettier从0开始配置教程2024年,教你从0开始认识和配置ESlint。本文将从0开 - 掘金

使用 Vue 3 + Vite + TypeScript 配合 Prettier、ESLint 和 Husky 的详细指南 - 掘金


http://www.kler.cn/a/412519.html

相关文章:

  • 用两个栈实现队列 剑指offer
  • ubuntu 安装 docker 记录
  • 【vue3实现微信小程序】从轮播图到公告栏的前端开发之旅
  • redmi 12c 刷机
  • 解决 vxe-table v3.9 + iview 或者 view-design 中使用 Select 后无法选中的问题
  • 鸿蒙多线程开发——sendable共享容器
  • setter方法注入(Java EE 学习笔记07)
  • 大工C语言作业答案
  • 【软考速通笔记】系统架构设计师⑥——数据库设计基础知识
  • go-学习
  • ThingsBoard规则链节点:GCP Pub/Sub 节点详解
  • 关闭AWS账号后,服务是否仍会继续运行?
  • vue3 多种方式接受props,定义ref,reactive
  • 如何做好一份技术文档
  • [代码随想录Day24打卡] 93.复原IP地址 78.子集 90.子集II
  • 城电科技|三轴光伏太阳花 建设零碳新园区
  • 【计算机视觉+MATLAB】自动检测并可视化圆形目标:通过 imfindcircles 和 viscircles 函数
  • 【竞技宝】LOL-传奇杯:KB3-1击败M3
  • w059基于springboot的课程答疑系统
  • 4 Java数组
  • femor 第三方Emby应用全平台支持v1.0.54更新
  • MySQL-关于InnoDB(1)
  • Spring Boot 3启动加载器详解(含源码解析)
  • Gstreamer中,appsink、appsrc、fakesink与第三方交互
  • Web富文本编辑器 wangeditor 解决 XSS 攻击方法
  • 同步时序电路——描述