美文网首页
vite下部分插件使用

vite下部分插件使用

作者: 新世界的冒险 | 来源:发表于2022-05-02 18:38 被阅读0次

    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
          })
      ],
    });
    

    相关文章

      网友评论

          本文标题:vite下部分插件使用

          本文链接:https://www.haomeiwen.com/subject/pylvyrtx.html