Vue 3 + Uniapp + Vite + js + ESLint + Prettier 的完整安装步骤及配置

从 ESLint 8.23.0 开始,ESLint 引入了新的 Flat Config 格式(即 eslint.config.mjs),取代了传统的 .eslintrc 文件。以下是基于 eslint.config.mjs 的完整配置步骤,适用于 Vue 3 + Uniapp + Vite + ESLint +  js + Prettier 项目

前提安装必要插件:ESLint Prettier Volar

1. 创建项目

使用 Vite 创建一个 Vue 3 项目(选择 JavaScript 模板):

npm create vite@latest my-uniapp-project --template vue

cd my-uniapp-project

2. 安装 Uniapp 支持

安装 Uniapp 的 Vite 插件:

npm install @dcloudio/vite-plugin-uni --save-dev

在 vite.config.js 中配置 Uniapp 插件:

import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

export default defineConfig({
  plugins: [uni()],
})

3. 安装 ESLint 和 Prettier

安装 ESLint 和相关插件:

npm install eslint @eslint/js eslint-plugin-vue eslint-config-prettier eslint-plugin-prettier --save-dev

安装 Prettier:

npm install prettier --save-dev

4. 配置 ESLint

创建 eslint.config.mjs 文件:

import globals from 'globals'
import pluginJs from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import pluginPrettier from 'eslint-plugin-prettier/recommended'

export default [
  {
    files: ['**/*.js', '**/*.vue'], // 针对 JS 和 Vue 文件
    languageOptions: {
      globals: {
        ...globals.browser, // 浏览器环境全局变量
      },
      ecmaVersion: 'latest', // 使用最新的 ECMAScript 版本
      sourceType: 'module', // 使用 ES 模块
    },
  },
  pluginJs.configs.recommended, // 使用 ESLint 推荐规则
  ...pluginVue.configs['flat/essential'], // 使用 Vue 插件的基础规则
  pluginPrettier, // 添加 Prettier 支持
  {
    rules: {
      'no-console': 'warn', // 自定义规则
      'no-unused-vars': 'off', // 关闭未使用变量的检查
      'vue/multi-word-component-names': 'off', // 允许单文件组件名
      'prettier/prettier': [
        'error',
        {
          endOfLine: 'auto', // 忽略行尾符
        },
      ],
    },
  },
]

5. 配置 Prettier

创建 Prettier 配置文件 .prettierrc:

{
  "printWidth": 80,
  "tabWidth": 2,
  "useTabs": false,
  "semi": false,
  "singleQuote": true,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "bracketSameLine": false,
  "arrowParens": "always",
  "proseWrap": "preserve",
  "htmlWhitespaceSensitivity": "css",
  "endOfLine": "lf",
  "embeddedLanguageFormatting": "auto",
  "singleAttributePerLine": false
}

6. 安装和配置 Sass

(注意最新版本Sass 官方弃用 @import 语法

报错:DEPRECATION WARNING [import]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

解决方法:

1: 降级 Sass 版本(临时方案)

npm install sass@1.58.3 -D  # 使用最后一个完全支持@import的版本

2: 倒是可以通过配置vite忽略升级提醒,但解决不了根本问题,sososo还是使用升级后的语法吧(hhh)

安装最新版 Sass:

npm install sass@latest --save-dev

在 vite.config.js 中配置 Sass:

import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

export default defineConfig({
  plugins: [uni()],
  css: {
    preprocessorOptions: {
      scss: {
        api: 'modern', // 使用 Modern JS API 可以部分解决 Dart Sass 的兼容性问题
        additionalData: `@use "@/styles/variables.scss" as *;`, // 全局引入变量
      },
    },
  },
})

7. 配置自动导入(插件作用:自动按需导入常用的 API 或库,减少手动编写 import 语句的重复工作,提升开发效率

安装 unplugin-auto-import 和 unplugin-vue-components:

npm install unplugin-auto-import unplugin-vue-components --save-dev

在 vite.config.js 中配置自动导入AutoImport:(好好看注释蛤)

import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'

export default defineConfig({
  plugins: [
    uni(),
    AutoImport({
      imports: [
        'vue',
        'vue-router',
        // 其他需要自动导入的库
        'pinia', // 自动导入 Pinia 相关 API
      ],
      // dts: 'src/auto-imports.d.ts', // 生成类型声明文件 生成一次后注释掉即可
      eslintrc: {
        enabled: false, // true:启用 ESLint 配置生成 false:关闭 首次生成文件后设置为false即可
        filepath: './.eslintrc-auto-import.json', // 指定生成的 ESLint 配置文件路径
        globalsPropValue: true, // 将全局变量标记为可写(默认为 true)
      },
    }),
    Components({
      dts: false, // 不需要生成类型声明文件
    }),
  ],
})

8. 配置 ESLint 支持自动导入

在 eslint.config.mjs 中引入自动生成的 .eslintrc-auto-import.json:

import { readFileSync } from 'fs'
import globals from 'globals'
import pluginJs from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import pluginPrettier from 'eslint-plugin-prettier/recommended'

// 读取 .eslintrc-auto-import.json 文件
const autoImportConfig = JSON.parse(
  readFileSync(new URL('./.eslintrc-auto-import.json', import.meta.url), 'utf-8'
)

export default [
  {
    files: ['**/*.js', '**/*.vue'], // 针对 JS 和 Vue 文件
    languageOptions: {
      globals: {
        ...globals.browser, // 浏览器环境全局变量
        ...autoImportConfig.globals, // 自动导入的全局变量
      },
      ecmaVersion: 'latest', // 使用最新的 ECMAScript 版本
      sourceType: 'module', // 使用 ES 模块
    },
  },
  pluginJs.configs.recommended, // 使用 ESLint 推荐规则
  ...pluginVue.configs['flat/essential'], // 使用 Vue 插件的基础规则
  pluginPrettier, // 添加 Prettier 支持
  {
    rules: {
      'no-console': 'warn', // 自定义规则
      'no-unused-vars': 'off', // 关闭未使用变量的检查
      'vue/multi-word-component-names': 'off', // 允许单文件组件名
      'prettier/prettier': [
        'error',
        {
          endOfLine: 'auto', // 忽略行尾符
        },
      ],
    },
  },
]

9. VSCode 配置(可选,在 .vscode/settings.json 中配置统一的团队开发规则,确保所有成员使用相同的编辑器设置,减少格式冲突和代码风格差异

新建.vscode文件夹中新建settings.json文件:
{
  "files.eol": "\n", // 统一使用 LF
  "editor.tabSize": 2,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "eslint.validate": ["javascript", "vue", "typescript"],
  "prettier.requireConfig": true
}

10. 配置脚本

在 package.json 中添加以下脚本:

{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint . --ext .vue,.js --fix",
    "format": "prettier --write ."
  }
}

11. 运行项目

启动开发服务器:npm run dev

运行 ESLint 检查:npm run lint

格式化代码:npm run format

HBuilder X中运行:关于多环境配置:uniapp配置多环境

11. 总结

通过以上步骤,你已经完成了 Vue 3 + Uniapp + Vite + ESLint + Prettier 的完整配置,使用 JavaScript 而不是 TypeScript,并确保使用最新版本的 Sass  ESLint Flat Config 格式。项目结构清晰,代码风格统一,开发体验更加高效。

环境这东西玩不坏 不好用就卸了装 装了卸就好 放心大胆搞 加油吖

示例中还包含封装uni-request,一些基础封装及uniapp多环境配置等,示例整理好了将更新github地址:Vue 3 + Uniapp + Vite + js + ESLint + Prettier

在使用 Vite 构建工具、Vue3 和 TypeScript 开发 UniApp 应用时,需要进行一系列配置以确保项目能够正确运行并支持所需的开发功能。以下是一个完整的集成开发配置指南: ### 3.1 创建项目结构 首先,通过 `degit` 工具创建一个基于 Vue3、TypeScript 和 ViteUniApp 项目模板。根据官方推荐的方式,可以使用如下命令创建项目: ```bash npx degit dcloudio/uni-preset-vue#vite-ts my-uniapp-project ``` 这将生成一个包含基础配置的项目框架,其中默认集成了 ViteVue3 和 TypeScript 支持 [^3]。 ### 3.2 配置 TypeScript 在项目根目录下创建或确认存在 `tsconfig.json` 文件,并配置 TypeScript 编译选项。示例配置如下: ```json { "compilerOptions": { "target": "ESNext", "module": "ESNext", "lib": ["esnext", "dom"], "strict": true, "esModuleInterop": true, "skipLibCheck": true, "outDir": "./dist", "rootDir": "./src", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, "types": ["vite/client", "vue3-uniapp"] }, "include": ["src/**/*"] } ``` 此配置启用了严格的类型检查,并指定了适用于 UniAppVue3 的模块解析方式 [^2]。 ### 3.3 安装依赖项 进入项目目录后安装必要的开发依赖和运行时依赖: ```bash cd my-uniapp-project yarn install ``` 此外,如果希望使用额外的功能如 Prettier 格式化代码,则可添加相关插件: ```bash yarn add prettier eslint-config-prettier eslint-plugin-prettier -D ``` 同时,在 `.prettierrc` 中定义格式化规则以统一代码风格 [^4]。 ### 3.4 集成 Vue3UniApp 插件 确保 `vite.config.ts` 中正确引入了对 Vue3UniApp 的支持。通常情况下,创建项目时已经预设好了这些内容,但手动检查仍然重要。示例配置如下: ```typescript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import uni from '@dcloudio/vite-plugin-uni' export default defineConfig({ plugins: [ vue(), uni() ] }) ``` 上述插件使得 Vite 可以识别 `.vue` 文件并处理 UniApp 特定的构建需求 [^1]。 ### 3.5 使用全局变量和组件库 为了在整个应用中访问某些全局属性(例如 `$echarts`),可以在入口文件中设置: ```javascript const app = createApp(App) app.config.globalProperties.$echarts = echarts app.mount('#app') ``` 对于 UI 框架如 Element Plus 或 Ant Design Vue,可以通过 `app.use()` 方法注册它们为插件 [^1]。 ### 3.6 开发与调试 启动开发服务器非常简单,只需执行: ```bash yarn dev ``` Vite 提供了快速的冷启动时间和热更新机制,极大提升了开发效率 [^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值