vite+vue3配置eslint+prettier+ts

本文介绍了如何在Vite+Vue3项目中配置ESLint、Prettier和TypeScript,包括所需安装的第三方库、.eslintrc.cjs、vite.config.js和setting.json的配置细节,确保代码风格一致并提供错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vite+vue3配置eslint+prettier+ts

vite+vue3配置eslint+prettier+ts

很多人使用不同的编辑器开发,不仅仅只是vscode,即便是统一的vscode,也会有一些基本的差异。接下来我们在项目中。接入针对ts、prettier、vue3的eslint错误警示。

packjson的第三方库下载

  1. prettier // prettier的核心代码

  2. eslint-config-prettier // 这将禁用 ESLint 中的格式化规则,而 Prettier 将负责处理这些规则

  3. eslint-plugin-prettier // 把 Prettier 推荐的格式问题的配置以 ESLint rules 的方式写入,统一代码问题的来源。

  4. eslint // ESLint的核心代码

  5. @typescript-eslint/parser // ESLint的解析器,用于解析typescript,从而检查和规范Typescript代码

  6. @typescript-eslint/eslint-plugin // ESLint插件,包含了各类定义好的检测Typescript代码的规范

  7. eslint-plugin-vue // 支持对vue文件检验

  8. vite-plugin-eslint // 错误将在浏览器中报告,而不止在终端,按需使用
    因为当前框架使用的是vite的项目,所以需要单独下载vite-plugin-eslint后,此时若不符合eslint要求,则会在浏览器内和终端内显示错误。在vite.config.js里需要在plugins里写入eslintPlugin

在eslint.cjs里需要针对prettier在rules进行抛出错误,并且根据我们刚刚下载的插件去进行绑定和扩展

.eslintrc.cjs代码

module.exports = {
    env: {
        browser: true,
        es2021: true,
        node: true,
    },
    extends: [
        'eslint:recommended',
        'plugin:vue/vue3-essential',
        'plugin:@typescript-eslint/recommended',
        'plugin:prettier/recommended',
    ],
    overrides: [],
    parser: 'vue-eslint-parser',
    parserOptions: {
        ecmaVersion: 'latest',
        sourceType: 'module',
        parser: '@typescript-eslint/parser',
    },
    plugins: ['vue', '@typescript-eslint'],
    rules: {
        // 'quotes': [
        //     'error',
        //     'single'
        // ], //必须为单引号
        // 'semi': [
        //     'error',
        //     'always'
        // ], //必须有分号
        'vue/multi-word-component-names': 'off',
        'prettier/prettier': 'error',
    },
};

vite.config.js代码

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
import eslintPlugin from 'vite-plugin-eslint';
export default defineConfig({
    plugins: [vue(), eslintPlugin()],
    // , eslintPlugin()
    resolve: {
        //resolve配置alias的路径别名
        alias: {
            // 设置路径 这里resolve和join可自行选用
            '~': path.resolve(__dirname, './'),
            // 设置别名
            '@': path.resolve(__dirname, './src'),
        },
        extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
    },
    css: {
        preprocessorOptions: {
            less: {
                modifyVars: {
                    hack: `true; @import (reference) "${path.resolve(
                        'src/assets/css/base.less'
                    )}";`,
                },
                javascriptEnabled: true,
            },
        },
    },
    server: {
        proxy: {
            '/api': {
                target: 'http://test-jyrczp-admin.iguanwei.com/',
                changeOrigin: true,
            },
        },
    },
});

在根目录创建.prettierrc.cjs文件,vite内使用js文件,格式化效果不生效。当项目内同时存在cjs和.vscode-.setting.json文件,针对prettier样式,以cjs为主,若没有cjs,以setting.json配置的方式去格式化文件。.prettierrc.cjs配置了一些格式化文件规则,这样当我们使用编辑器的保存时会按照此规格去格式化代码。

module.exports = {
    endOfLine: 'auto',
    printWidth: 80,
    semi: true, //必须加分号
    tabWidth: 4, //tab缩进大小
    singleQuote: true, //最佳实践->单引号
    trailingComma: 'es5',
    bracketSpacing: true,
    arrowParens: 'avoid', //箭头函数参数只有一个时是否要有小括号
    proseWrap: 'preserve', //代码超出是否要换行 preserve保留
};

若prettier规则不生效,很有可能是没有编辑器没有以prettier插件作为格式化插件,我们可以在setting.json里设置

setting.json代码

{
    "editor.formatOnSave": true, // 文件保存自动格式化
    "editor.fontSize": 16, //字体发小
    // "prettier.printWidth": 80, //prettier的格式化规则使用.prettierrc.cjs来进行导入
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": false //执行的是eslint –fix,禁用eslint格式化,以prettier为主
    },
    // 格式化插件设置为 prettier,此代码是设置vscode的格式化插件为prettier
    "[vue]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[javascriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[typescriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[less]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[scss]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
    "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }
}

### 配置和使用 ESLintViteVue3TypeScript 的项目中配置和使用 ESLint 是一项常见的需求。以下是详细的说明: #### 创建项目并初始化 通过 `npm` 或 `yarn` 创建一个新的 Vite 项目,并选择 VueTypeScript 支持: ```bash npm create vite@latest my-vue3-project --template vue-ts cd my-vue3-project npm install ``` #### 安装必要的依赖包 为了支持 ESLint,在项目中安装以下依赖包: ```bash npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-vue eslint-config-prettier eslint-plugin-prettier --save-dev ``` 这些包的作用分别是: - **eslint**: 主要的 lint 工具。 - **@typescript-eslint/parser**: 解析 TypeScript 文件以便于 ESLint 使用[^1]。 - **@typescript-eslint/eslint-plugin**: 提供针对 TypeScript 的规则集。 - **eslint-plugin-vue**: 添加对 Vue 单文件组件的支持。 - **eslint-config-prettier** 和 **eslint-plugin-prettier**: 确保 Prettier 不与 ESLint 发生冲突。 #### 初始化 ESLint 配置 运行以下命令来引导生成 `.eslintrc.*` 文件: ```bash npx eslint --init ``` 按照提示选择合适的选项,例如: - **How would you like to use ESLint?** → *To check syntax and find problems*. - **What type of modules does your project use?** → *JavaScript modules (import/export)*. - **Which framework does your project use?** → *Vue.js*. - **Does your project use TypeScript?** → *Yes*. - **Where does your code run?** → *In the browser*. - **How would you like to define a style for your project?** → *Use a popular style guide*. - **Which style guide do you want to follow?** → *Standard*. - **What format do you want your config file to be in?** → *JavaScript*. 最终会在项目的根目录生成一个名为 `.eslintrc.cjs` 的文件。 #### 修改 `.eslintrc.cjs` 文件 根据实际需求调整配置文件的内容。以下是一个典型的配置示例: ```javascript module.exports = { root: true, env: { node: true, browser: true, }, extends: [ 'plugin:vue/vue3-recommended', 'standard-with-typescript', 'prettier' ], parserOptions: { ecmaVersion: 2020, sourceType: 'module', tsconfigRootDir: __dirname, project: ['./tsconfig.json'] }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', '@typescript-eslint/no-explicit-any': 'off', 'prettier/prettier': 'error' } }; ``` 此配置包含了以下几个部分: - **root:** 设置为 `true` 表明这是项目的顶层配置[^2]。 - **env:** 指定环境变量,这里包括 Node.js 和浏览器环境。 - **extends:** 继承多个预定义的规则集合,如 Vue 推荐规则、标准 TypeScript 规则以及 Prettier 的兼容模式。 - **parserOptions:** 配置解析器的相关选项,指定 ECMAScript 版本和支持的模块类型。 - **rules:** 自定义一些特定规则的行为,比如禁用调试语句或允许某些宽松条件。 #### 配置 VSCode 插件 为了让开发体验更流畅,建议在 Visual Studio Code 中安装以下插件: - **ESLint** - **Prettier - Code Formatter** 接着修改用户的全局设置或者工作区设置以启用保存时自动格式化功能: ```json { "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "editor.formatOnSave": true } ``` 最后验证一切正常工作的方法是在任意源码文件里故意引入错误语法再尝试修复它们;如果能够看到即时反馈,则表明整个流程已正确搭建完毕。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值