• Vue开发中必不可少的几个Vite插件
  • 发布于 2天前
  • 21 热度
    0 评论
正文
Vite 以其快速的开发体验和强大的插件生态系统成为 Vue 开发者的首选工具。无论是提升 Vue 2 项目的现代化能力,还是优化 Vue 3 项目的开发效率,Vite 插件都能提供强大支持!

unplugin-vue2-script-setup
unplugin-vue2-script-setup 允许在 Vue 2 项目中使用 Vue 3 的 <script setup> 语法,简化组件定义并支持 Composition API。由于 Vue 2.7 已内置此功能,该插件主要适用于 Vue 2.6 或更早版本的项目,目前处于维护模式。
npm install -D unplugin-vue2-script-setup
npm install @vue/composition-api
在 vite.config.ts 中:
import { defineConfig } from 'vite';
import { createVuePlugin as Vue2 } from 'vite-plugin-vue2';
import ScriptSetup from 'unplugin-vue2-script-setup/vite';

export default defineConfig({
  plugins: [
    Vue2(),
    ScriptSetup({ /* options */ }),
  ],
});
开发者可以在 Vue 2 项目中使用 <script setup> 语法,简化代码结构,提高可读性,便于向 Vue 3 迁移。

vite-plugin-vue-gql
vite-plugin-vue-gql 允许在 Vue SFC 中使用 <gql> 标签定义 GraphQL 查询、变更和订阅。
npm install -D vite-plugin-vue-gql
npm install @urql/vue graphql
在 vite.config.ts 中:
import { defineConfig } from 'vite';
import Vue from '@vitejs/plugin-vue';
import Vql from 'vite-plugin-vue-gql';

export default defineConfig({
  plugins: [Vue(), Vql()],
});
这样就可以将 GraphQL 查询整合到 Vue SFC 中,保持代码整洁。
<script setup lang="ts">
import { ref } from 'vue'
import { useQuery } from 'vql'

const name = ref('Evan')
const { data } = useQuery({ variables: { name } })
</script>

<template>...</template>

<gql>
query($name: String!) {
  user(name: $name) {
    username
  }
}
</gql>
vite-plugin-md
vite-plugin-md 允许将 Markdown 文件作为 Vue 组件导入,同时支持在 Markdown 中嵌入 Vue 组件,适合文档密集型项目。
npm install vite-plugin-md -D
在 vite.config.js 中:
import Vue from '@vitejs/plugin-vue';
import Markdown from 'vite-plugin-md';

export default {
  plugins: [
    Vue({ include: [/\.vue$/, /\.md$/] }),
    Markdown(),
  ],
};
这样配置后, Markdown 文件可作为 Vue 组件使用,支持动态内容和组件复用,适合文档站或内容管理系统。

vite-plugin-markdown-mermaid
vite-plugin-markdown-mermaid 允许在 Markdown 文件中使用 Mermaid 图表,支持多种格式导入,如 HTML 和 Vue 组件。
npm install -D vite-plugin-markdown-mermaid
在 vite.config.js 中:
import { defineConfig } from 'vite';
import MarkdownMermaid from 'vite-plugin-markdown-mermaid';

export default defineConfig({
  plugins: [MarkdownMermaid()],
});
Markdown 文件中的 Mermaid 图表可直接渲染,增强文档的交互性和可视化能力。

unplugin-svg-component
unplugin-svg-component 将 SVG 文件转换为 Vue 或 React 组件,支持 HMR、Tree-shaking 和 TypeScript 提示。
npm install unplugin-svg-component -D
在 vite.config.ts 中:
import { defineConfig } from 'vite';
import { UnpluginSvgComponent } from 'unplugin-svg-component/vite';

export default defineConfig({
  plugins: [UnpluginSvgComponent({ /* options */ })],
});
SVG 文件可作为 Vue 或 React 组件使用,支持热更新和优化,适合跨框架项目。

vite-plugin-style-vw-loader
vite-plugin-style-vw-loader 将 Vue 组件中的内联样式 px 单位转换为 vw 单位,方便响应式设计。
npm install vite-plugin-style-vw-loader -D
在 vite.config.js 中:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vitePluginStyleVwLoader from 'vite-plugin-style-vw-loader';
// 堆代码 duidaima.com
export default defineConfig({
  plugins: [vitePluginStyleVwLoader(), vue()],
});
这样配置后内联样式中的 px 单位自动转换为 vw,简化响应式布局开发。

vite-ssg
vite-ssg 是一个用于 Vue 3 的静态站点生成(SSG)插件,支持多页和单页应用。
npm install -D vite-ssg vue-router @unhead/vue
在 vite.config.ts 中:
import { defineConfig } from 'vite';
import { ViteSSG } from 'vite-ssg';
import App from './App.vue';

export const createApp = ViteSSG(
  App, 
  { routes },
  ({ app, router, routes, isClient, initialState }) => {
    // 安装插件等
  }
);
支持静态站点生成,适合部署到静态服务器的 Vue 3 应用。

unplugin-vue-components
unplugin-vue-components 支持 Vue 2 和 Vue 3 的组件和指令自动导入,减少手动导入的麻烦。
npm install unplugin-vue-components -D
在 vite.config.ts 中:
import { defineConfig } from 'vite';
import Components from 'unplugin-vue-components/vite';

export default defineConfig({
  plugins: [Components()],
});
自动导入和注册组件,减少代码冗余,提高开发效率。
详细的配置可以看这里:https://github.com/unplugin/unplugin-vue-components

vite-plugin-vue2-suffix
vite-plugin-vue2-suffix 解决从 Webpack 迁移到 Vite 时 Vue 2 组件缺少 .vue 后缀的问题。
npm install vite-plugin-vue2-suffix -D
在 vite.config.js 中:
import { createVuePlugin } from 'vite-plugin-vue2';
import VitePluginVue2Suffix from 'vite-plugin-vue2-suffix';

export default {
  plugins: [createVuePlugin(), VitePluginVue2Suffix()],
};
这样就可以自动为组件导入添加 .vue 后缀,简化迁移过程。

vite-plugin-vue-static-sfc
vite-plugin-vue-static-sfc 将 .vue 文件作为静态资产服务,适用于静态网站。
npm install vite-plugin-vue-static-sfc
在 vite.config.js 中:
import staticVuePlugin from 'vite-plugin-vue-static-sfc';

export default {
  plugins: [staticVuePlugin()],
};
配置后支持将 .vue 文件作为静态文件服务,适合静态网站开发。

vite-plugin-vue-nested-sfc
vite-plugin-vue-nested-sfc 允许在 Vue SFC 中嵌套其他 SFC,提高组件模块化。
npm install -D vite-plugin-vue-nested-sfc
在 vite.config.js 中:
import vue from '@vitejs/plugin-vue';
import vueNestedSFC from 'vite-plugin-vue-nested-sfc';

export default {
  plugins: [vue(), vueNestedSFC()],
};
启动之后支持嵌套 SFC,提高组件组织性和可重用性。

vite-plugin-vue-style-in-template
vite-plugin-vue-style-in-template 从 Vue 组件模板中提取 <style> 标签,适用于特殊样式需求。
pnpm install vite-plugin-vue-style-in-template
在 vite.config.js 中:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import styleInTemplate from 'vite-plugin-vue-style-in-template';

export default defineConfig({
  plugins: [vue(), styleInTemplate()],
});
配置后支持在模板中定义样式并提取,适合动态或条件样式场景。

最后
这些  Vite 插件为 Vue 项目提供了从组件自动导入到静态站点生成的全面支持,涵盖了 Vue 2 和 Vue 3 的多种开发需求!今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!
用户评论