首页 > 其他分享 >vue2项目 热更新慢解决方案

vue2项目 热更新慢解决方案

时间:2024-02-22 16:35:52浏览次数:27  
标签:vue plugin 解决方案 更新 js html vue2 import vite

问题1 构建速度慢
问题2 每次保存文件 ,热更新卡94% Asset Optimization 这一步上 停顿十几秒

解决方案一:

npm i html-webpack-plugin-for-multihtml--save-dev

文件
build/webpack.dev.conf.js

const HtmlWebpackPlugin = require('html-webpack-plugin')
  替换为
const HtmlWebpackPlugin = require('html-webpack-plugin-for-multihtml')

new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      multihtmlCache: true,
      inject: true
    }),

image

解决方案二:

替换webpackvite
需求:在构建老项目中的依赖不受影响

删除所有webpack配置,
package.json

 "devDependencies": {
    "@rollup/plugin-inject": "^5.0.5",
    "@vitejs/plugin-vue2": "^2.3.1",
    "sass": "1.5",
    "unplugin-auto-import": "^0.16.6",
    "vite": "^4.2.1",
    "vite-plugin-commonjs": "^0.10.1",
    "vite-plugin-html": "^3.2.0"
  },

vite.config.js

import { fileURLToPath, URL } from "node:url"
import { defineConfig, loadEnv } from 'vite'
import vue2 from "@vitejs/plugin-vue2";
// import vueJsx from "@vitejs/plugin-vue-jsx";
import { createHtmlPlugin } from "vite-plugin-html";
import AutoImport from "unplugin-auto-import/vite";
import commonjs from "vite-plugin-commonjs";
import inject from '@rollup/plugin-inject';

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  const env = loadEnv(mode, process.cwd(), '')
  return {
    base: env.VITE_PUBLIC_PATH,
    build: {
      outDir: 'dist',
      rollupOptions: {
        output: {
          chunkFileNames: 'assets/js/[name]-[hash].js',
          entryFileNames: 'assets/js/[name]-[hash].js',
          assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
        },
      },
    },

    css: {
      preprocessorOptions: {
        // sass: {
        //   additionalData: `
        //     @import "@/assets/styles/variables.scss"; //全局sass文件
        //   `
        // }
      }
    },
    server: {
      host: '0.0.0.0',
      port: 8080,
      open: true,
      hmr: true,
      proxy: {
        [env.VITE_API_URL]: {
          target: 'http://test.zhbaotong.com',
          // target: 'http://zhbaotong.com',
          changeOrigin: true,
          secure: true,
          pathRewrite: {
            ['^' + env.VITE_API_URL]: ''
          },
          // emulateJSON: true,
        }
      },
    },
    plugins: [
      vue2(),
      // vueJsx(),//解析jsx语法
      createHtmlPlugin({
        inject: {
          data: { //index.html 变量
            title: '产业工人管理及安全培训',
            BASE_URL: ""
          }
        }
      }),
      commonjs(),//兼容 export default 导出
      AutoImport({
        imports: ["vue", "vue-router"], //自动导入vue和vue-router相关函数
      }),
      {
        rollupInputOptions: {
          plugins: [ //注入全局 jQuery
            inject({
              $: 'jquery',
              window: ['window', 'self']
            })
          ]
        }
      }
    ],
    resolve: {//别名
      alias: {
        'vue$': 'vue/dist/vue.esm.js',
        "@": "/src",
        "qrcodejs2": "/src/libs/qrcode.js", //qrcodejs2 补丁
      },
      extensions: ['.vue', '.js', '.css'], //简写后缀
    },
    define: { // 全局常量
      // 'process.env': {
      //   'BASE_API': "http://test.zhbaotong.com/bt/"
      // }
    },
  }
});

标签:vue,plugin,解决方案,更新,js,html,vue2,import,vite
From: https://www.cnblogs.com/wxyblog/p/18027617

相关文章

  • 深度解析:iOS开发中Masonry第三方库可能出现的布局崩溃问题及解决方案
    在iOS应用开发过程中,自动布局是一个至关重要的环节。作为广受欢迎的第三方布局框架,Masonry以其简洁的链式语法和强大的功能为开发者提供了便利。然而,在实际使用过程中,如果不正确地配置约束,可能会导致界面布局崩溃的问题。本文将通过具体代码示例探讨几种常见的Masonry布局崩溃原因......
  • 智能诊断设备迅为IMX6Q核心板解决方案
    在科技飞速发展的今天,智能诊断设备已经成为了医疗领域不可或缺的一部分。其中,这款IMX6Q核心板在智能诊断设备中也有广泛的使用。  IMX6Q核心板作为一款高性能的处理器,具有强大的数据处理能力和高效的能源管理功能。在智能诊断设备中,它可以快速处理大量的医疗数据,为医生提供准......
  • 微软:符合条件设备将自动更新至Win11 23H2!
    今天微软发布公告表示,目前依然停留在Windows1121H2和22H2,但符合升级条件的设备,将会自动更新至最新的23H2更新。微软在公告中表示,Windows1123H2更新已进入新的部署阶段,符合升级条件的Windows11设备自动升级到23H2。此次自动更新针对的是已达到或即将达到服务期限的Windows1......
  • 【更新公告】AirtestIDE更新至1.2.17版本
    1.前言本次更新为AirtestIDE、Airtest-Selenium库更新。AirtestIDE更新至1.2.17版本,AirtestIDE内置库Airtest更新为1.3.3.1版本,Poco更新为1.0.94版本,主要支持了selenium4.0以上版本,ADB更换为41版本,Airtest新增点击和滑动的相对坐标支持,Poco修复了1.0.93运行效率缓慢的问题等......
  • KubeSphere 镜像构建器(S2I)服务证书过期解决方案
    目前KubeSphere所有3.x.x版本,如果开启了DevOps模块并使用了镜像构建器功能(S2I)都会遇到证书过期问题。解决方法已开启DevOps模块下载这个更新S2I服务证书压缩包,上传到任一可以访问K8s集群的节点;把上传的压缩包解压进入解压后的目录执行更新证书的脚本./update......
  • vue2.0和vue3.0在同一电脑上运行(超详细步骤)
    由于现在公司项目都是vue2.0项目,个人又需要3.0来学习。所以需要在同一电脑安装两个版本的vue。1.在创建vue2.0和vue3.0两个文件夹,并且局部安装 在vue2文件夹执行命令[email protected](版本根据自身来选择),[email protected]在vue3文件夹执行命令npmin......
  • JPA批量新增,批量更新
    jpa的sava与saveAllsave()方法@Transactionalpublic<SextendsT>Ssave(Sentity){if(this.entityInformation.isNew(entity)){this.em.persist(entity);returnentity;}else{returnthis.em.merge(ent......
  • 布客深度学习译文集 2024.2 更新
    Sklearn、TensorFlow与Keras机器学习实用指南第三版Sklearn与TensorFlow机器学习实用指南第二版PyTorch自然语言处理Transformer和扩散模型的生成式AI实用指南(预览版)Transformer自然语言处理面向程序员的FastAI和PyTorch深度学习TensorFlow学习手册Tensor......
  • vue2 echarts 渲染数据
     <template><divref="friendsTrend"class="mt-16friendsTrend"/></template><script>import*asechartsfrom'echarts'importmomentfrom'moment'import{getLineChartStatisticsData......
  • 解决方案 | 笔记本电脑能连上WIFI,但是无Internet显示地球图标,怎么回事?(win10)
    一、背景任务栏托盘区显示地球图标,但是实际上可以上网。   疑难诊断一般是这种情况: 二、可能的有效解决方案 0方案0:使用360断网急救箱傻瓜式修复个人制作|360断网急救箱新版-2.0版单文件绿色版分享(解决99%的电脑无法上网问题)https://www.cnblogs.com/issacne......