vue3项目打包成单个html文件

vue3项目打包成单个html文件

  1. 将vue框架也打包进去

    1. 安装依赖

      • npm install vite-plugin-singlefile --save-dev
        
    2. 修改vite.config.js

      • import {defineConfig} from 'vite'
        import vue from '@vitejs/plugin-vue'
        import { viteSingleFile } from 'vite-plugin-singlefile';
        export default defineConfig({plugins: [vue(),viteSingleFile(),],build: {minify: false,},})
        
    3. 路由设置

      • history: createWebHashHistory("/") //这里使用hash 
        
    4. 打包

      • npm run build
        
  2. 将vue框架通过cdn引入

    1. 安装依赖

      • npm install vite-plugin-singlefile --save-dev
        
    2. index.html中使用cdn引入vue

      • <!DOCTYPE html>
        <html lang="zh-CN"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite + Vue3</title><script src="https://unpkg.com/vue@3.2.45/dist/vue.global.js"></script></head><body><div id="app"></div><script type="module" src="/src/main.js"></script></body>
        </html>
        
    3. 修改vite.config.js

      • import { defineConfig } from 'vite'
        import vue from '@vitejs/plugin-vue'
        import { viteSingleFile } from 'vite-plugin-singlefile'export default defineConfig({plugins: [vue(),viteSingleFile({// 使用正则表达式跳过 vue 模块的内联skip: [/^vue/]})],build: {rollupOptions: {external: ['vue'],output: {globals: {vue: 'Vue'},// 设置输出格式为 IIFE,这样不会保留 import 语句format: 'iife'}}}
        })
    4. 路由设置

      • history: createWebHashHistory("/") //这里必须使用hash 
        
    5. 打包

      • npm run build
        
  3. 如果想要将element-plus也通过cdn引入, 需要修改成如下

    index.html

    • <!DOCTYPE html>
      <html lang="zh-CN"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite + Vue3</title><script src="https://unpkg.com/vue@3.2.45/dist/vue.global.js"></script><!-- CDN 引入 ElementPlus 样式 --><link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"><!-- CDN 引入 ElementPlus --><script src="https://unpkg.com/element-plus/dist/index.full.js"></script></head><body><div id="app"></div><script type="module" src="/src/main.js"></script></body>
      </html>
      

    main.js

    • import { createApp } from 'vue'
      import './style.css'
      import App from './App.vue'import ElementPlus from 'element-plus'
      // 去除直接导入的
      // import 'element-plus/dist/index.css'const app = createApp(App)app.use(ElementPlus)
      app.mount('#app')
      

    vite.config.js

    • import { defineConfig } from 'vite'
      import vue from '@vitejs/plugin-vue'
      import { viteSingleFile } from 'vite-plugin-singlefile'export default defineConfig({plugins: [vue(),viteSingleFile({// 跳过对 vue 和 element-plus 模块的内联skip: [/^vue/, /^element-plus/]})],build: {rollupOptions: {external: ['vue', 'element-plus'], // 声明 vue 和 element-plus 为外部依赖output: {globals: {vue: 'Vue','element-plus': 'ElementPlus'},// 输出格式设置为 iife,以便全局变量可以正常工作format: 'iife'}}}
      })
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904293.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梯度方差的概念

梯度方差的概念 内容 在深度学习中,梯度方差(Gradient Variance) 是一个关键概念,它直接影响模型的训练稳定性和收敛速度。以下用通俗的语言和实际例子解释它的含义、作用及影响。1. 什么是梯度方差?定义: 梯度方差表示 不同批次数据计算出的梯度之间的波动程度。 如果每…

解决方案 | 如何安全可靠地更改win10的C盘用户名

有的朋友可能最开始由于不知道使用中文名在编程中的各种bug,从而将自己的系统用户名设置成了中文名或者各种奇怪符号的名字,导致在英文编程的时候或者使用英文软件的时候可能出错。为了解决这个问题,网上的文章写得又臭又长,生怕别人看懂学到了技术。本文目的:实现原用户名…

20244106 实验一《Python程序设计》实验报告

20244106 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级:2441 姓名:孙诗棋 学号:20244106 实验教师:王志强 实验日期:2025年3月20日 必修/选修: 公选课 1.实验内容熟悉Python开发环境; 练习Python运行、调试技能; 编写程序,练习变量和类型…

Nature Communications | 单细胞表观图谱破解颅神经发育疾病非编码变异之谜

摘要总结 这篇文章是2024年9月发表在《Nature Communications》杂志上的一篇研究,标题为“A cell type-aware framework for nominating non-coding variants in Mendelian regulatory disorders”。这篇文章通过整合小鼠胚胎颅运动神经元的单细胞染色质可及性、组蛋白修饰和基…

IOC容器启动及Bean生成流程

目录 一、容器启动IOC启动流程重点二、扫描并注册BeanDefination加载并过滤资源注册BeanDefination三、BeanFactory后置处理 四、注册Bean后置处理器 五、遍历BeanDefination,实例化单例BeanpreInstantiateSingletonsdoGetBean(我们只关注单例)createBean实例化前执行doCrea…

关于QQ提示非官方正版应用

笔者是magisk+lsp+zygisk+shamiko环境,依然是被制裁了,momo检测只有Bootloader未锁定。 也没想在手机上登录QQ(已经摆烂,反正现在工作了,基本都用微信了),只是想在手机打两把王者,登录王者时选择用ipad扫码登录(只是授权登录) 这时候提示我 sign of app is error(100…

苍穹外卖-day04

day-04 25-3-20 新增套餐 需求分析&设计业务规则套餐名称唯一 套餐必须属于某个分类 套餐必须包含菜品 名称、分类、价格、图片为必填项 添加菜品窗口需要根据分类类型来展示菜品 新增的套餐默认为停售状态接口设计(共涉及到4个接口):根据类型查询分类(已完成) 根据分…

提示词工程师自白:我如何用一个技巧解放自己的生产力

“在AI时代的交响乐中,提示词工程师是默默无闻却至关重要的指挥家,用精心编织的语言指引大模型这个智能巨兽创造出人类思维的奇迹。” AI粉嫩特攻队,2025年3月22日。 自从新的生产范式诞生以来,我的工作中多了一项新身份——提示工程师。 在不同的大语言模型之间穿梭,寻求…

20244123 实验一《Python程序设计》实验报告

20244123 2024-2025-2 《Python程序设计》实验x报告 课程:《Python程序设计》 班级: 2441 姓名: 邓淑怀 学号:20244123 实验教师:王志强 实验日期:2025年3月20日 必修/选修: 公选课 1.实验内容 (1)熟悉Python开发环境; (2)练习Python运行、调试技能; (3)编写程序…

https://liweinlp.com/13092 总结

https://liweinlp.com/13092一段话总结 大型语言模型(LLMs)的“黑箱”特性(因复杂参数和层级结构导致决策过程难以追踪)引发信任、伦理和监管挑战。“Logits Lens”技术通过解码模型中间层的隐藏状态,将其转化为词元(token)的概率分布,直观展示模型在不同层级对下一个词…

RabbitMQ的用户详解以及maven导入

一.RabbitMQ的角色分类 1:none:不能访问management plugin2:management:查看自己相关节点信息列出自己可以通过AMQP登入的虚拟机 查看自己的虚拟机节点 virtual hosts的queues,exchanges和bindings信息 查看和关闭自己的channels和connections 查看有关自己的虚拟机节点vir…