vite下部分插件使用

1、vite-plugin-vue-setup-extend

解决vue3下 script setup语法糖 下 ,手动设置组件name不方便的问题

npm i vite-plugin-vue-setup-extend -D

//在文件vite.config.ts中

import setupExtend from 'vite-plugin-vue-setup-extend';
export default defineConfig({
  plugins: [
    ...
    setupExtend()
  ],
});

2、unplugin-auto-import

实现vue函数的自动导入,这样如ref, computed,watch等就不用手动导入了

npm i unplugin-auto-import -D

//在文件vite.config.ts中

import AutoImport from 'unplugin-auto-import/vite';
export default defineConfig({
  plugins: [
    ...
    AutoImport({
      imports: [
        'vue',
        'vue-router',
        {
          vuex: ['useStore']
        }
      ],
      resolvers: [],
      dts: false
    }),
  ],
});
当前无效与eslint冲突,如果直接使用依然会报错
这里采用了全局eslint还需安装npm i eslint-plugin-auto-import -D
顾最终配置如下
在vite.config.ts文件中
export default ({ mode }) => {
  return defineConfig({
    plugins: [
      AutoImport({
        include: [
          /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
          /\.vue$/,
          /\.vue\?vue/, // .vue
          /\.md$/ // .md
        ],
        imports: [
          'vue',
          'vue-router',
          {
            vuex: ['useStore']
          }
        ],
        resolvers: [ElementPlusResolver()],
        dts: './auto-imports.d.ts',
        // eslint报错解决
        eslintrc: {
          // 此处为true运行后会生成.eslintrc-auto-import.json  auto-imports.d.ts文件
          enabled: true, // 此处第一次运行使用true,之后改为false
          filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
          globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
        }
      }),
      Components({
        resolvers: [ElementPlusResolver()]
      }),
    ],
  });
};

在.eslintrc.js文件中

  extends: [
    ...
    './.eslintrc-auto-import.json'
  ],

在tsconfig.json文件中

  compilerOptions: [
    ...
    "types": ["element-plus/global"]
  ],
"include": [..., "auto-imports.d.ts"],

3、unplugin-vue-components

实现vue组件库的自动按需导入,这样就不用手动导入了

npm i unplugin-vue-components -D

//在文件vite.config.ts中

import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports: [
        'vue',
        'vue-router',
        {
          vuex: ['useStore']
        }
      ],
      resolvers: [ElementPlusResolver()],
      dts: false
    }),
    Components({
      resolvers: [ElementPlusResolver()]
    }),
  ]
});

4、vite-plugin-compression

静态资源压缩

npm i vite-plugin-compression -D

//在文件vite.config.ts中

// 静态资源压缩
import viteCompression from 'vite-plugin-compression';
export default defineConfig({
  plugins: [
    ...
    viteCompression({
      verbose: true,
      disable: false, // 不禁用压缩
      deleteOriginFile: false, // 压缩后是否删除原文件
      threshold: 10240, // 压缩前最小文件大小
      algorithm: 'gzip', // 压缩算法
      ext: '.gz' // 文件类型
    })
  ],
});

5、rollup-plugin-visualizer

打包分析,可视化并分析构建包,查看哪些模块占用空间大小,以及模块的依赖关系

npm i rollup-plugin-visualizer -D

//在文件vite.config.ts中

import visualizer from 'rollup-plugin-visualizer';
export default defineConfig({
  plugins: [
    ...
    visualizer({
        // 打包后自动打开分析报告
        open: true
      })
  ],
});

 

posted @ 2023-02-27 08:55  smile_lg  阅读(334)  评论(0编辑  收藏  举报