当前位置:   article > 正文

Vite项目插件_vite-plugin-monkey

vite-plugin-monkey

 1、unplugin-vue-components 自动导入组件

      1.1 安装

npm i unplugin-vue-components -D

      1.2 自动导入ui库,该插件内置了大多数流行库解析器 Element Plus Ant Design Vue Vant Element UI Headless UI 

  1. // vite.config.js
  2. import { defineConfig } from 'vite'
  3. import Components from 'unplugin-vue-components/vite'
  4. import {
  5. ElementPlusResolver,
  6. VantResolver,
  7. AntDesignVueResolver,
  8. } from 'unplugin-vue-components/resolvers'
  9. export default defineConfig({
  10. plugins: [
  11. Components({
  12. //导入自己的组件 指定组件位置,默认是src/components
  13. dirs: ['src/components', 'src/views'],
  14. // ui解析库
  15. resolvers: [
  16. ElementPlusResolver(),
  17. AntDesignVueResolver(),
  18. VantResolver(),
  19. ],
  20. //配置文件生成位置, 插件会生成一个自己组件路径的components.d.ts文件
  21. dts: './.components.d.ts'
  22. // 其他配置
  23. // ...
  24. })
  25. ]
  26. })

2、unplugin-auto-import/vite 自动导入vue3的hooks

2.1 安装

npm i -D unplugin-auto-import

2.2 配置,默认在根目录生成auto-imports.d.ts文件,并将其添加到tsconfig.json include中

  1. // vite.config.js
  2. import { defineConfig } from 'vite'
  3. import AutoImport from 'unplugin-auto-import/vite'
  4. export default defineConfig({
  5. plugins: [
  6. AutoImport({
  7. //自动导入 Vue 相关函数,如:ref, reactive, toRef 等
  8. imports: ['vue', 'vue-router', 'vue-i18n', '@vueuse/head', '@vueuse/core'],
  9. eslintrc: {
  10. // 默认 false, 生成一次即可,避免每次工程启动都生成,一旦生成配置文件之后,改成 false。
  11. // 否则这个文件每次会在重新加载的时候重新生成,这会导致 eslint 有时会找不到这个文件。当需要更新配置文件的时候,再重新打开
  12. enabled: false,
  13. // 默认就是 ./.eslintrc-auto-import.json
  14. // filepath: './.eslintrc-auto-import.json',
  15. // globalsPropValue: true, // 默认 true
  16. },
  17. // auto-import.d.ts生成的位置,默认在根目录生成
  18. // dts: 'src/auto-import.d.ts'
  19. })
  20. ]
  21. })

如果使用了eslint校验规则,在 vue 文件中会报一个 eslint 报错问题: 'ref' is not defined

则:配置 `eslintrc.enabled: true`,重启项目生成 .eslintrc-auto-import.json 文件(浏览器需要访问所有应用到 vue/element api 的页面才会生成所有自动导入 api 的文件 json),生成后改为 false。最后在 .eslintrc.js 文件 extends中引入生成的 json

3、vite-plugin-style-import  按需导入组件库样式

3.1安装

npm install vite-plugin-style-important -D

3.2 配置

  1. // vite.config.js
  2. import { defineConfig } from 'vite'
  3. import styleImport, {
  4. AndDesignVueResolve,
  5. VantResolve,
  6. ElementPlusResolve,
  7. } from 'vite-plugin-style-import'
  8. export default defineConfig({
  9. plugins: [
  10. styleImport({
  11. resolves: [
  12. AndDesignVueResolve(),
  13. VantResolve(),
  14. ElementPlusResolve(),
  15. ],
  16. // 自定义规则
  17. libs: [
  18. {
  19. libraryName: 'ant-design-vue',
  20. esModule: true,
  21. resolveStyle: (name) => {
  22. return `ant-design-vue/es/${name}/style/index`
  23. }
  24. }
  25. ]
  26. })
  27. ],
  28. // 引用使用less的库要配置一下
  29. css: {
  30. preprocessorOptions: {
  31. less: {
  32. javascriptEnabled: true
  33. }
  34. }
  35. }
  36. })

4、vite-plugin-svg-icons

        当你使用该插件的时候,指定好存放svg的文件夹。再按照指定的方式去访问svg图片。就可以再不产生http请求的情况下渲染出svg图片。使用该插件时,插件会自动将所有svg图片加载到HTML中。并且每一个svg将会被过滤去无用的信息数据。让svg达到最小的值。之后使用svg图片就只需要操作DOM即可,而不需要发送http请求。

  1. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
  2. import path from 'path';
  3. export function configSvgIconsPlugin(isBuild: boolean) {
  4. const svgIconsPlugin = createSvgIconsPlugin({
  5. // 本地svg图片地址
  6. iconDirs: [path.resolve(process.cwd(), 'src/assets/sprites')],
  7. svgoOptions: isBuild,
  8. // 图标ID的格式
  9. symbolId: 'icon-[dir]-[name]',
  10. });
  11. return svgIconsPlugin;
  12. }
  13. // main.ts
  14. import 'virtual:svg-icons-register';

5、vite-plugin-monkey

       开发构建 Tampermonkey 用户脚本。

  1. import { defineConfig } from 'vite'
  2. import Userscript from 'vite-plugin-tm-userscript'
  3. // https://vitejs.dev/config/
  4. export default defineConfig({
  5. plugins: [
  6. Userscript({
  7. externalGlobals: ['vue']
  8. })
  9. ]
  10. })

6、vite-plugin-compression 

        当前端资源过大时,服务器请求资源会比较慢。前端可以将资源通过Gzip压缩使文件体积减少大概60%左右,压缩后的文件,通过后端简单处理,浏览器可以将其正常解析出来。如果浏览器的请求头中包含content-encoding: gzip,即证明浏览器支持该属性

  1. import viteCompression from 'vite-plugin-compression'
  2. export default defineConfig({
  3. plugins:[
  4. viteCompression()
  5. ]
  6. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/390307
推荐阅读
相关标签
  

闽ICP备14008679号