vue3+vite+eslint|prettier+elementplus+国际化+axios封装+pinia

vue3 + vite 创建项目

因为菜鸟使用了vite,所以很显然已经完全不想回 webpack 的身边了(可能人就是这样:喜新厌旧),然后菜鸟翻了一圈掘金,没发现自己写过 vue3+vite 的文章,所以这里就先从这里讲起!

菜鸟之前写的:vue3+webpack+eslint|prettier+elementplus+国际化+axios封装+pinia,感觉eslint|prettier部分没有写好,所以这里重新搞了一下!

创建项目

npm create vue@latest

执行结果
在这里插入图片描述

注意

jsx 按需要引入!

这里可以见:差点因为性能优化而被"优化"!虚拟化表格(Virtualized Table)性能优化

如果创建项目选了 eslint + prettier

下载 eslint 和 prettier 插件(下方《从零教你使用 eslint + prettier 有截图》),并直接在新建的项目下执行

npm i

这个时候eslint就生效了,但是现在vue3创建时会给你默认的配置,这个时候只需要修改 eslint.config.js,将rules加到后面即可(如果放前面会被后面的覆盖)

在这里插入图片描述

但是如果你创建项目时没有选 eslint + prettier,那就看看下面的吧!

从零教你使用 eslint + prettier

首先假如你是刚下载的vscode,且你新建的项目没有选择 eslint + prettier ,这个时候该怎么办?

第一步,下载eslint

npm i eslint --save-dev

第二步,创建eslint配置文件,并下载好其他插件

npx eslint --init

创建过程如下:

在这里插入图片描述

生成文件如下:

在这里插入图片描述

在这里插入图片描述

这里暂时使用的都是默认的配置,如果需要自己加配置可以这样加:

在这里插入图片描述

这个时候 eslint 虽然生效了,但是vscode并不会提示,因为还差一个 eslint 插件!

在这里插入图片描述

在这里插入图片描述

现在 eslint 基本上已经可以使用了,但是要我们人为的一个一个去改这些报错就很难受,这个时候 prettier 就该上线了!

注意

eslint 报错不会影响项目运行!以前webpack项目是会影响的,原因如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三步:安装 prettier

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

其中:
在这里插入图片描述

安装后配置 eslint (2025/2/7 补充)

这里菜鸟已经换成了cjs的写法,为什么换,见:element plus 使用问题

const globals = require("globals");
const pluginJs = require("@eslint/js");
const pluginVue = require("eslint-plugin-vue");
const autoImportConfig = require("./.eslintrc-auto-import.json");

module.exports = [
  require("eslint-config-prettier"),
  {
    files: ["**/*.{js,mjs,cjs,vue}"]
  },
  {
    ignores: ["node_modules", "dist", "bin"] // 忽略不需要检查的文件
  },
  pluginJs.configs.recommended,
  ...pluginVue.configs["flat/essential"],
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        ...globals.node,
        ...autoImportConfig.globals
      }
    }
  },
  {
    plugins: {
      prettier: require("eslint-plugin-prettier")
    }
  },
  {
    rules: {
      "prettier/prettier": "error", // 让 Prettier 报告格式错误,并作为 ESLint 错误处理
      "no-console": "off",
      "semi": ["error", "always"],
      // avoidEscape: true 推荐添加
      "quotes": ["error", "double", { avoidEscape: true }],
      "vue/multi-word-component-names": 0
    }
  }
];

第四步:设置 prettier 规则

创建 .prettierrc.json 文件,常用规则如下:

{
  "semi": true,
  "singleQuote": false,
  "tabWidth": 2,
  "printWidth": 80,
  "trailingComma": "none"
}

但是完成上述操作后并不会自动格式化,还需要你安装插件

在这里插入图片描述

安装完成后,你可以右键,点击格式化选择 prettier 进行格式化

在这里插入图片描述

但是菜鸟感觉还是不够智能,要是能直接保存时自己格式化不是更香吗?

注意

其实只要安装了 prettier - code formatter 这个插件,就可以自动格式化,但是使用的是这个插件里面的版本就是不是你自己下载的版本!

第五步:修改 vscode 配置

在vscode设置中,找到在setting.json中编辑

在这里插入图片描述

添加如下代码:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "eslint.validate": ["javascript", "vue"],
  "eslint.run": "onType",
  "eslint.format.enable": true
}

重启vscode,你将获得很棒的体验!

注意

不管是改eslint还是prettier,都一定要重启IDE,不然就会不生效,让你感觉你配错了!!!

eslint 配置

当你以为万事大吉开始开发的时候,删除掉 vue 自带的文件,并新建如菜鸟这样的文件时

在这里插入图片描述

你会发现报错这个

Component name "xxxxx” should always be multi-word

这里的主要原因是

在这里插入图片描述

但是感觉这个规范确实不需要(部分文件不是两个单词拼接),只需要在 eslint.config.js 里面加上这一行

在这里插入图片描述

方便复制

"vue/multi-word-component-names": 0,

element plus

这里比较多,直接提出成一篇文章了:element plus使用问题

vite 使用 sass

vite天然支持postcss,所以要使用sass也很简单,直接

npm i sass

即可开箱即用!

剩余

剩余的感觉之前写的就可以,回到之前的:vue3+webpack+eslint|prettier+elementplus+国际化+axios封装+pinia

<think>嗯,用户想用Vite创建一个结合Vue 3、TypeScript、Pinia和Element Plus的前端项目。首先,我需要回忆一下这些技术栈的整合步骤。Vite本身确实支持快速搭建Vue项目,但可能需要确认一下模板的选择。用户可能需要先通过npm或者yarn来初始化项目,对吧? 接下来,Vue 3和TypeScript的集成应该是Vite官方模板的一部分,所以使用`npm create vite@latest`然后选择vue-ts模板应该可行。但可能需要提醒用户注意最新的版本,避免兼容性问题。 然后是Pinia,作为Vue的官方状态管理库,安装应该是通过npm install pinia,然后在main.ts中引入并挂载到app实例上。需要确认用户是否了解如何在组件中使用store,可能需要提供基本示例,比如定义一个简单的store并在组件中使用。 Element Plus部分,用户可能需要按需导入还是全局导入?按需导入可以减小包体积,但需要安装unplugin-vue-components和unplugin-auto-import这样的插件。这时候需要指导用户修改vite.config.ts,添加相关的配置。同时,别忘了引入Element Plus的样式文件,可能还需要安装额外的依赖,比如unplugin-icons或者其他相关插件。 还有TypeScript的配置,可能需要检查tsconfig.json是否有特殊的配置要求,尤其是当用户遇到类型错误时。比如,在Vue组件中正确使用TypeScript,可能需要定义组件的props和emits类型,或者使用defineComponent来确保类型推断正确。 项目结构方面,可能需要建议用户如何组织目录,比如stores目录存放Pinia的store,views和components区分页面和组件,以及如何管理静态资源。同时,提醒用户关于Vite的约定,比如public目录和assets目录的区别。 最后,测试运行部分,确保用户运行npm run dev后没有错误,并且Element Plus的组件能正常显示。可能还需要提到一些常见问题,比如样式未加载、按需导入未生效等,以及如何解决这些问题,比如检查vite配置是否正确,依赖是否安装完整。 可能还需要考虑是否需要集成其他工具,比如ESLintPrettier进行代码规范,或者配置路由vue-router。如果用户没有提到,可能暂时不需要深入,但可以简要提及作为扩展建议。总之,整个过程需要分步骤,确保用户能一步步跟随,避免遗漏关键配置点。</think>我将分步骤为您讲解如何创建基于ViteVue3+TS+Pinia+ElementPlus项目: 1. **项目初始化** ```bash npm create vite@latest my-vue-project -- --template vue-ts cd my-vue-project ``` 2. **安装核心依赖** ```bash npm install pinia @pinia/npm i element-plus @element-plus/icons-vue npm install -D unplugin-vue-components unplugin-auto-import # 按需加载所需 ``` 3. **配置Vitevite.config.ts)** ```ts import { defineConfig } from &#39;vite&#39; import AutoImport from &#39;unplugin-auto-import/vite&#39; import Components from &#39;unplugin-vue-components/vite&#39; import { ElementPlusResolver } from &#39;unplugin-vue-components/resolvers&#39; export default defineConfig({ plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ] }) ``` 4. **配置Pinia(main.ts)** ```ts import { createPinia } from &#39;pinia&#39; const app = createApp(App) app.use(createPinia()) ``` 5. **创建示例Store(src/stores/counter.ts)** ```ts import { defineStore } from &#39;pinia&#39; export const useCounterStore = defineStore(&#39;counter&#39;, { state: () => ({ count: 0 }), actions: { increment() { this.count++ } } }) ``` 6. **ElementPlus组件使用示例** ```vue <template> <el-button type="primary" @click="store.increment"> Count: {{ store.count }} </el-button> </template> <script setup lang="ts"> import { useCounterStore } from &#39;@/stores/counter&#39; const store = useCounterStore() </script> ``` **项目结构建议**: ``` ├── src/ │ ├── assets/ │ ├── components/ │ ├── stores/ # Pinia store │ ├── views/ │ ├── App.vue │ └── main.ts ├── tsconfig.json └── vite.config.ts ``` **常见问题处理**: 1. 样式丢失:在main.ts中添加 ```ts import &#39;element-plus/dist/index.css&#39; ``` 2. TypeScript类型检查:确保tsconfig.json包含 ```json { "compilerOptions": { "types": ["element-plus/global"] } } ``` **启动项目**: ```bash npm run dev ``` 后续扩展建议: - 添加vue-router配置路由 - 集成axios进行接口请求 - 配置环境变量(.env文件) - 添加ESLint+Prettier代码规范 需要具体配置哪个部分可以告诉我,我会提供更详细的说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PBitW

可以去掘金看更完善版本

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值