返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3+ts+EsLint+Prettier规范代码的方法实现
  • 306
分享到

vue3+ts+EsLint+Prettier规范代码的方法实现

2024-04-02 19:04:59 306人浏览 薄情痞子
摘要

目录使用 EsLint的使用添加配置文件 Prettier的使用使用husky和lint-staged构建代码 增加setting.JSON配置参考资料 本文主要介绍在vu

本文主要介绍在vue3中使用typescript开发时,如何安装与配置EsLint和Prettier,以提高编码规范。
(1)EsLint 提供编码规范;
(2)Prettier 是一个 OpiNIOnated 的代码格式化工具

使用

EsLint的使用

安装依赖


npm i -D eslint eslint-plugin-Vue @typescript-eslint/parser @typescript-eslint/eslint-plugin

这四个依赖分别是:

  • - `eslint`: EsLint的核心代码
  • - `eslint-plugin-vue`:[为Vue使用Eslint的插件](https://eslint.vuejs.org/)
  • - `@typescript-eslint/parser`:ESLint的解析器,用于解析typescript,从而检查和规范Typescript代码
  • - `@typescript-eslint/eslint-plugin`:这是一个ESLint插件,包含了各类定义好的检测Typescript代码的规范

添加配置文件


npx eslint --init

根目录下增加.eslintrc.js文件。(建议选择js文件,json不可以写注释) 修改配置文件
主要是修改rules中的相关配置,具体可查看官方配置



module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
    es6: true
  },
  parser: 'vue-eslint-parser',
  parserOptions: {
    parser: '@typescript-eslint/parser',
    ecmaVersion: 2020,
    sourceType: 'module',
    jsxPragma: 'React',
    ecmaFeatures: {
      jsx: true
    }
  },
  globals: {
    AMap: false,
    AMapUI: false
  },
  extends: [
    'plugin:vue/vue3-recommended',
    'plugin:@typescript-eslint/recommended',
    'prettier',
    'plugin:prettier/recommended'
  ],
  rules: {
    '@typescript-eslint/ban-ts-ignore': 'off',
    '@typescript-eslint/explicit-function-return-type': 'off',
    '@typescript-eslint/no-explicit-any': 'off',
    '@typescript-eslint/no-var-requires': 'off',
    '@typescript-eslint/no-empty-function': 'off',
    'vue/custom-event-name-casing': 'off',
    'no-use-before-define': 'off',
    '@typescript-eslint/no-use-before-define': 'off',
    '@typescript-eslint/ban-ts-comment': 'off',
    '@typescript-eslint/ban-types': 'off',
    '@typescript-eslint/no-non-null-assertion': 'off',
    '@typescript-eslint/explicit-module-boundary-types': 'off',
    '@typescript-eslint/no-unused-vars': [
      'error',
      {
        argsIgnorePattern: '^_',
        varsIgnorePattern: '^_'
      }
    ],
    'no-unused-vars': [
      'error',
      {
        argsIgnorePattern: '^_',
        varsIgnorePattern: '^_'
      }
    ],
    'space-before-function-paren': 'off',
    'vue/name-property-casing': ['error', 'PascalCase'], // vue/component-definition-name-casing 对组件定义名称强制使用特定的大小
    'vue/attributes-order': 'off',
    'vue/one-component-per-file': 'off',
    'vue/html-closing-bracket-newline': 'off',
    'vue/max-attributes-per-line': 'off',
    'vue/multiline-html-element-content-newline': 'off',
    'vue/singleline-html-element-content-newline': 'off',
    'vue/attribute-hyphenation': 'off',
    'vue/require-default-prop': 'off',
    'vue/script-setup-uses-vars': 'off',
    'vue/html-self-closing': [
      'error',
      {
        html: {
          void: 'always',
          nORMal: 'never',
          component: 'always'
        },
        svg: 'always',
        math: 'always'
      }
    ]
  }
}

Prettier的使用

安装依赖


npm i --save-dev prettier eslint-config-prettier eslint-plugin-prettier

这三个依赖分别是:

  • - `prettier`:prettier插件的核心代码
  • - `eslint-config-prettier`:解决ESLint中的样式规范和prettier中样式规范的冲突,以prettier的样式规范为准,使ESLint中的样式规范自动失效
  • - `eslint-plugin-prettier`:将prettier作为ESLint规范来使用

添加配置文件

项目的根目录下创建`.prettierrc.js`文件,并添加如下配置


module.exports = {
  printWidth: 120, // 换行字符串阈值
  tabWidth: 2, // 设置工具每一个水平缩进的空格数
  useTabs: false,
  semi: false, // 句末是否加分号
  vueIndentScriptAndStyle: true,
  singleQuote: true, // 用单引号
  trailinGComma: 'none', // 最后一个对象元素加逗号
  bracketSpacing: true, // 对象,数组加空格
  jsxBracketSameLine: true, // jsx > 是否另起一行
  arrowParens: 'always', // (x) => {} 是否要有小括号
  requirePragma: false, // 不需要写文件开头的 @prettier
  insertPragma: false // 不需要自动在文件开头插入 @prettier
}

将Prettier添加到EsLint中

修改`.eslintrc.js`文件,在extends中增加


    'prettier',
    'plugin:prettier/recommended'

其中:

  • - `prettier/@typescript-eslint`:使得@typescript-eslint中的样式规范失效,遵循prettier中的样式规范
  • - `plugin:prettier/recommended`:使用prettier中的样式规范,且如果使得ESLint会检测prettier的格式问题,同样将格式问题以error的形式抛出

使用husky和lint-staged构建代码

安装依赖


npm i --save-dev husky lint-staged

修改package.json
添加以下代码


    "husky": {
        "hooks": {
            "pre-commit": "lint-staged"
        }
    },
    "lint-staged": {
        "src**.ts": [
            "prettier --config .prettierrc.js --write",
            "eslint",
            "git add"
        ],
        "src**.json": [
            "prettier --config .prettierrc.js --write",
            "eslint",
            "git add"
        ]
    }

这样,在执行git commit时,EsLint会检查提交的代码。

 增加setting.json配置

在.vscode文件夹中增加`setting.json`配置文件,用于自动保存时,自动修复及检验代码。


{
  "typescript.tsdk": "./node_modules/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "volar.tsPlugin": true,
  "volar.tsPluginStatus": false,
  //===========================================
  //============= Editor ======================
  //===========================================
  "explorer.openEditors.visible": 0,
  "editor.tabSize": 2,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "diffEditor.ignoreTrimWhitespace": false,
  //===========================================
  //============= Other =======================
  //===========================================
  "breadcrumbs.enabled": true,
  "open-in-browser.default": "chrome",
  //===========================================
  //============= files =======================
  //===========================================
  "files.eol": "\n",
  "search.exclude": {
    "**/node_modules": true,
    "***.log*": true,
    "**/bower_components": true,
    "**/dist": true,
    "**/elehukouben": true,
    "**/.git": true,
    "**/.gitignore": true,
    "**/.svn": true,
    "**/.DS_Store": true,
    "**/.idea": true,
    "**/.vscode": false,
    "**/yarn.lock": true,
    "**/tmp": true,
    "out": true,
    "dist": true,
    "node_modules": true,
    "CHANGELOG.md": true,
    "examples": true,
    "res": true,
    "screenshots": true,
    "yarn-error.log": true,
    "**/.yarn": true
  },
  "files.exclude": {
    "**/.cache": true,
    "**/.editorconfig": true,
    "**/.eslintcache": true,
    "**/bower_components": true,
    "**/.idea": true,
    "**/tmp": true,
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true
  },
  "files.watcherExclude": {
    "**/.git/objects.git/subtree-cache.vscodenode_modulestmpbower_componentsdistyarn.lock": true
  },
  "stylelint.enable": true,
  "stylelint.packageManager": "yarn",
  "liveServer.settings.donotShowInfoMsg": true,
  "telemetry.enableCrashReporter": false,
  "workbench.settings.enableNaturalLanguageSearch": false,
  "path-intellisense.mappings": {
    "/@/": "${workspaceRoot}/src"
  },
  "prettier.requireConfig": true,
  "typescript.updateImportsOnFileMove.enabled": "always",
  "workbench.sideBar.location": "left",
  "[javascriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[CSS]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[less]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[markdown]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "[vue]": {
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": false
    }
  },
  "cSpell.Words": [
    "vben",
    "windi",
    "browserslist",
    "tailwindcss",
    "esnext",
    "antv",
    "tinymce",
    "qrcode",
    "sider",
    "pinia",
    "sider",
    "nprogress"
  ]
}

参考资料

Prettier官网
EsLint官网
EsLint Rules
Prettier看这一篇就行了
使用EsLint+Prettier规范TypeScript代码

到此这篇关于vue3+ts+EsLint+Prettier规范代码的方法实现的文章就介绍到这了,更多相关vue3 ts 规范代码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3+ts+EsLint+Prettier规范代码的方法实现

本文链接: https://lsjlt.com/news/155400.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue3+ts+EsLint+Prettier规范代码的方法实现
    目录使用 EsLint的使用添加配置文件 Prettier的使用使用husky和lint-staged构建代码 增加setting.json配置参考资料 本文主要介绍在Vu...
    99+
    2024-04-02
  • Vue3如何通过ESLint校验代码是否符合规范详解
    目录前言1.在项目中安装ESLint命令2.初始化ESLint配置命令3.查看eslint.js文件4.在package.json下添加验证脚本5.编辑器中安装eslint插件5.1...
    99+
    2024-04-02
  • Node.js ESLint教程:如何使用ESlint让你的代码更规范
    一、安装 ESLint 首先,您需要安装 ESLint。您可以通过以下命令在全球范围内安装 ESLint: npm install -g eslint 二、配置 ESLint 安装完成后,您需要为您的 Node.js 项目配置 ESLi...
    99+
    2024-02-13
     ESLint Node.js 代码检查 代码质量 代码可维护性
  • Node.js ESLint:让你的代码更整洁、更规范
    如何使用 ESLint 安装 ESLint 要在你的项目中使用 ESLint,首先需要安装它。你可以使用 npm 或 yarn 来安装 ESLint。 npm install eslint --save-dev // or yarn ...
    99+
    2024-02-13
    ESLint JavaScript 代码检查 规则 扩展
  • 代码规范的方法有哪些
    本篇内容介绍了“代码规范的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码规范变量命名这里我简...
    99+
    2024-04-02
  • 怎么实现git代码规范
    这篇文章主要介绍“怎么实现git代码规范”,在日常操作中,相信很多人在怎么实现git代码规范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现git代码规范”的疑惑有所帮...
    99+
    2024-04-02
  • Vue代码规范的方法有哪些
    这篇文章主要介绍“Vue代码规范的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue代码规范的方法有哪些”文章能帮助大家解决问题。一、JS部分1. 和渲染无关的数据vue中data的数据...
    99+
    2023-07-04
  • Vue3+TS实现语音播放组件的示例代码
    目录第一步:点击拖拽进度条第二步:操作媒体音频第三步:进度条和播放进度关联完整代码该功能将使用vue3 + TS来实现语音播放组件,使用什么技术不重要,重要的是看懂了核心逻辑后,通过...
    99+
    2024-04-02
  • vue3+vite2+ts4搭建项目环境规范的方法
    这篇文章主要讲解了“vue3+vite2+ts4搭建项目环境规范的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3+vite2+ts4搭建项目环境规范的方法”吧!Vue 3 + T...
    99+
    2023-06-30
  • Eslint代码检查的方法有哪些
    本篇内容介绍了“Eslint代码检查的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:理解代码...
    99+
    2024-04-02
  • 使用webpack打包ts代码的实现
    目录使用 webpack 打包生成 package.json安装 cnpm安装 webpack 相关编写 webpack 配置文件创建 tsconfig.json修改 package...
    99+
    2024-04-02
  • pycharm配置安装autopep8自动规范代码的方法示例
    这篇文章将为大家详细讲解有关pycharm配置安装autopep8自动规范代码的方法示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先下载安装autopep8:   1. ...
    99+
    2023-06-06
  • PyCharm代码规范化和格式化的实用技巧
    PyCharm是Python开发者常用的集成开发环境(IDE),它提供了丰富的功能和工具来提高代码的质量和效率。其中,代码规范化和格式化是编写高质量代码的重要步骤之一。本文将介绍PyC...
    99+
    2024-02-23
    格式化 pycharm 规范化
  • SpringAOP切入点规范及获取方法参数的实现
    切入点规范 @Pointcut("execution(* com.example.server.service.TeacherService.*(..))") 上面的切入点会切...
    99+
    2024-04-02
  • idea中使用SonarLint进行代码规范检测及使用方法
    安装 idea中选择file-setting-plugins,输入SonarLint,安装后重启idea 使用 重启完成后,在需要检测的单个文件或者单个项目上右键 --> A...
    99+
    2024-04-02
  • 规范GIT代码提交信息和自动化版本管理的方法
    本篇内容介绍了“规范GIT代码提交信息和自动化版本管理的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言git作为一个开发人员必不可少...
    99+
    2023-06-27
  • 使用vue3+ts+setup获取全局变量getCurrentInstance的方法实例
    目录前言:vue3官方提供的方法1、引入方法2、定义变量,接到我们的方法3、main.js中定义我们的全局变量4、页面中使用我们的全局变量vue3+ts 使用官方方法遇到的问题:最终...
    99+
    2022-11-13
    vue3获取全局变量 vue3的setup函数 vue3全局变量
  • PHP方法的命名规范与最佳实践
    PHP方法的命名规范与最佳实践 作为一种流行的服务器端脚本语言,PHP被广泛用于开发网站和Web应用程序。在PHP开发中,方法(函数)是非常重要的一部分,良好的命名规范和最佳实践能够提...
    99+
    2024-02-29
    最佳实践 命名规范 php方法
  • python实现动态规划算法的示例代码
    动态规划(Dynamic Programming,DP)是一种常用的算法思想,通常用于解决具有重叠子问题和最优子结构性质的问题。动态规划算法通常是将问题分解为子问题,先解决子问题,再...
    99+
    2023-02-16
    python 动态规划算法
  • vue3引入highlight.js进行代码高亮的方法实例
    目录背景描述:一、安装依赖:二、在vue3主入口main文件,对highlight进行引入和注册:三、页面使用:四、看下效果展示吧:五、一些优化:1.问题2.解决方法3. 处理后的效...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作