位置: IT常识 - 正文

vue3 + vite 多项目多模块打包(vue多模块多项目集成)

编辑:rootadmin
vue3 + vite 多项目多模块打包 vue3 + vite 多项目多模块打包

推荐整理分享vue3 + vite 多项目多模块打包(vue多模块多项目集成),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue多项目集成,vue多个项目,vue项目配置多个环境,vue 多tab,vue 多tab,vue 多个slot,vue 多项目管理,vue多个项目,内容如对您有帮助,希望把文章链接给更多的朋友!

本示例基于vite-plugin-html插件,实现多个独立项目共存,共享组件和依赖,运行、打包互不干扰。

npm create vite@latest

兼容性注意

Vite 需要 Node.js 14.18+、16+版本,有些模板需要更高的版本

虽然创建项目用的14.17.5版本,但是后面运行项目用的18.15.0

HTML模板插件npm i vite-plugin-html -D#vite.config.tsimport {defineConfig} from "vite"import vue from '@vitejs/plugin-vue'import {createHtmlPlugin} from 'vite-plugin-html'const htmlParams = { minify: true, pages: [ { filename: 'index', // filename 默认是template文件名,就是index.html entry: '/src/main.ts', template: 'index.html', } ]}export default defineConfig({ base: './', // 方便打包后预览 publicDir: 'public', // 默认 public plugins: [vue(), createHtmlPlugin(htmlParams)], build: { cssCodeSplit: true, emptyOutDir: true, sourcemap: false, assetsDir: 'assets', // 默认 assets outDir: 'dist', // 默认 dist rollupOptions: { input: {}, // input 不用管,插件内会处理 output: { compact: true, entryFileNames: "static/js/[name]-[hash].js", chunkFileNames: "static/js/[name]-[hash].js", assetFileNames: "static/[ext]/[name].[ext]", } } }})

打包一下 验证插件效果

npm run build

目录改造 beijing.html nanjing.htmlsrc - beijing - App.vue - main.ts - nanjing - App.vue - main.tsvue3 + vite 多项目多模块打包(vue多模块多项目集成)

新增文件(项目模板):beijing.html、nanjing.html

# beijing.html<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="/static/imgs/vite.svg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>北京项目</title> </head> <body> <div id="app"></div> <script type="module" src="/src/beijing/main.ts"></script> </body></html>

nanjing.html内容略(把北京的复制一份)

新增目录及项目文件:beijing/App.vue、beijing/main.ts、nanjing/App.vue、nanjing/main.ts

# beijing/main.tsimport { createApp } from 'vue'import '../style.css'import App from './App.vue'createApp(App).mount('#app')# beijing/App.vue<script setup lang="ts">import HelloWorld from '../components/HelloWorld.vue'</script><template> <div> <img src="/static/imgs/vite.svg" class="logo" alt="Vite logo"/> <img src="../assets/vue.svg" class="logo vue" alt="Vue logo"/> <h1>北京项目</h1> </div> <HelloWorld msg="HelloWorld"/></template>

nanjing/App.vue、nanjing/main.ts 内容略(把北京的复制一份)

注意文件路径,例如:vite.svg、vue.svg、style.css

#vite.config.tsimport {defineConfig} from "vite"import vue from '@vitejs/plugin-vue'import {createHtmlPlugin} from 'vite-plugin-html'const htmlParams = { minify: true, pages: [ { filename: 'beijing', // filename 默认是template文件名,就是beijing.html entry: '/src/beijing/main.ts', template: 'beijing.html', }, { filename: 'nanjing', entry: '/src/nanjing/main.ts', template: 'nanjing.html', }, ]}export default defineConfig({ base: './', // 方便打包后预览 publicDir: 'public', // 默认 public plugins: [vue(), createHtmlPlugin(htmlParams)], build: { cssCodeSplit: true, emptyOutDir: true, sourcemap: false, assetsDir: 'assets', // 默认 assets outDir: 'dist', // 默认 dist rollupOptions: { input: {}, // input 不用管,插件内会处理 output: { compact: true, entryFileNames: "static/js/[name]-[hash].js", chunkFileNames: "static/js/[name]-[hash].js", assetFileNames: "static/[ext]/[name].[ext]", } } }})

打包结果

我这的java项目集成的是FreeMarker, 把项目模板beijing.html改成beijing.ftl,修改文件里对应的静态资源路径, 前端打包之后,把dist下面的文件同步到java项目的static目录。

别名配置

ts 配置,新增项 baseUrl、types、paths

# tsconfig.json{ "compilerOptions": { "target": "ESNext", "useDefineForClassFields": true, "module": "ESNext", "moduleResolution": "Node", "strict": true, "jsx": "preserve", "resolveJsonModule": true, "isolatedModules": true, "esModuleInterop": true, "lib": ["ESNext", "DOM"], "skipLibCheck": true, "noEmit": true, "baseUrl": "src", "types": ["vite/client"], "paths": {"@/*": ["./*"]} }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "references": [{ "path": "./tsconfig.node.json" }]}

vite 配置,新增项 resolve.alias

# vite.config.tsimport {resolve} from "path";import {defineConfig} from "vite"import vue from '@vitejs/plugin-vue'import {createHtmlPlugin} from 'vite-plugin-html'const htmlParams = { minify: true, pages: [ { filename: 'beijing', // filename 默认是template文件名,就是beijing.html entry: '/src/beijing/main.ts', template: 'beijing.html', }, { filename: 'nanjing', entry: '/src/nanjing/main.ts', template: 'nanjing.html', }, ]}export default defineConfig({ base: './', // 方便打包后预览 publicDir: 'public', // 默认 public plugins: [vue(), createHtmlPlugin(htmlParams)], resolve: { alias: { '@': resolve(__dirname, 'src'), } }, build: { cssCodeSplit: true, emptyOutDir: true, sourcemap: false, assetsDir: 'assets', // 默认 assets outDir: 'dist', // 默认 dist rollupOptions: { input: {}, // input 不用管,插件内会处理 output: { compact: true, entryFileNames: "static/js/[name]-[hash].js", chunkFileNames: "static/js/[name]-[hash].js", assetFileNames: "static/[ext]/[name].[ext]", } } }})

项目里面,引入文件:"../assets/vue.svg"、"../components/HelloWorld.vue" 改为 "@/assets/vue.svg"、"@/components/HelloWorld.vue"

本文链接地址:https://www.jiuchutong.com/zhishi/283976.html 转载请保留说明!

上一篇:最早的塞班手机是什么(第一部塞班手机)

下一篇:玉树的养殖方法和注意事项(盆栽玉树的养殖方法)

  • 红米note11tpro怎么把电池显示放在电池框外面(红米note11tpro怎么长截屏)

    红米note11tpro怎么把电池显示放在电池框外面(红米note11tpro怎么长截屏)

  • 电子元器件识别(电子元器件识别)(电子元器件识别图解)

    电子元器件识别(电子元器件识别)(电子元器件识别图解)

  • oppor17支持无线充电吗(oppor17手机可以无线充电吗)

    oppor17支持无线充电吗(oppor17手机可以无线充电吗)

  • 微信拉群组聊天的方法是什么(微信 拉群聊)

    微信拉群组聊天的方法是什么(微信 拉群聊)

  • OPPO Ace2有DC调光的吗(oppoace2是dc调光还是类dc)

    OPPO Ace2有DC调光的吗(oppoace2是dc调光还是类dc)

  • opporeno4耳机怎么使用(opporeno4耳机怎么戴)

    opporeno4耳机怎么使用(opporeno4耳机怎么戴)

  • qq号绑定的手机号被注销了怎么办(qq号绑定的手机号注销了怎么换绑)

    qq号绑定的手机号被注销了怎么办(qq号绑定的手机号注销了怎么换绑)

  • 拍立得可以连接手机吗(拍立得连接不到手机蓝牙)

    拍立得可以连接手机吗(拍立得连接不到手机蓝牙)

  • 看视频怎么旋转屏幕(看视频怎么旋转摄像头)

    看视频怎么旋转屏幕(看视频怎么旋转摄像头)

  • oppo手机自带变声器在哪(oppo手机自带变声器下载)

    oppo手机自带变声器在哪(oppo手机自带变声器下载)

  • 为什么抖音保存不了别人的视频(为什么抖音保存的视频发朋友圈很模糊)

    为什么抖音保存不了别人的视频(为什么抖音保存的视频发朋友圈很模糊)

  • 大规模集成电路是什么(大规模集成电路为基础发展起来的新技术)

    大规模集成电路是什么(大规模集成电路为基础发展起来的新技术)

  • 小米8充电口有正反吗(小米8充电口有的线能用有的不能用)

    小米8充电口有正反吗(小米8充电口有的线能用有的不能用)

  • 为什么airpods pro不弹窗(为什么airpodspro连上后还是外放)

    为什么airpods pro不弹窗(为什么airpodspro连上后还是外放)

  • 手机怎么安装红外线(手机怎么安装红外线发射器)

    手机怎么安装红外线(手机怎么安装红外线发射器)

  • word2007链接到前一条页眉(word链接到前一节怎么是灰色)

    word2007链接到前一条页眉(word链接到前一节怎么是灰色)

  • 小米9se跳屏怎么解决(小米9se跳屏怎么关闭)

    小米9se跳屏怎么解决(小米9se跳屏怎么关闭)

  • 唯品会怎么改名(唯品会怎么改名字)

    唯品会怎么改名(唯品会怎么改名字)

  • oppoa57拦截电话在哪里找(oppo手机拦截陌生号码在哪里)

    oppoa57拦截电话在哪里找(oppo手机拦截陌生号码在哪里)

  • 抖音怎么拍特效视频(抖音怎么拍特效时间能长)

    抖音怎么拍特效视频(抖音怎么拍特效时间能长)

  • qq远程协助连接不上(qq远程协助连接就断)

    qq远程协助连接不上(qq远程协助连接就断)

  • 渐进式 Web 应用程序介绍(渐进模式的特点)

    渐进式 Web 应用程序介绍(渐进模式的特点)

  • 增值税加计抵减政策
  • 个体工商户开劳务发票税率
  • 增值税发票税号0和O
  • 政府补贴营业外收入所得税汇算清缴需要调增吗
  • 一般纳税人劳务费税率是13还是6
  • 经营利润和营业利润的区别
  • 广告制作赚钱吗?
  • 扣缴义务人怎么删除
  • 非财政补助支出
  • 差旅费报销怎么做账
  • 固定资产累计折旧完了怎么办
  • 企业纳税总额包含哪些
  • 已经开具的增值发票
  • 高新补贴收入计入什么科目
  • 营改增文件2019
  • 资产负债表中其他流动资产怎么计算
  • 房地产公司需要和哪些部门打交道
  • 对外投资的风险及对策
  • 交通补贴和通讯补贴标准
  • 工程发票预交税金规定
  • win11重置此电脑失败
  • Win10 Build 18363.1350/17763.1728累积更新补丁KB4598298正式推送
  • 苹果mac系统桌面空间不够
  • thinkphp withjoin
  • php判断ua
  • 盈利 利润
  • 在途物资退货会退款吗
  • 月末季末年末会计都需要做什么
  • 受托代销商品会计分录受托方
  • 双分录怎么做
  • 目标检测选SSD还是YOLO
  • 网络模型参数方法
  • blockdata指令怎么用
  • 开公司车出差违章了谁负责
  • 存储器的示意图
  • 企业有代扣代缴个税义务
  • 发票抵扣联和发票联区别
  • mongodb导入数据三种方式
  • sql server评估期已过版本升级时重启失败
  • 手机超过多少钱算贵
  • 预付账款可以抵扣增值税么
  • sql server 2005数据迁移
  • 财务报表是指的什么内容
  • 所得税 补税
  • 金税四期上线后对保险
  • 预付账款的会计编码是多少?
  • 进项税销项税抵扣分录
  • 营改增后所得税怎么计算
  • 当月发生业务下月开票如何做账
  • 事业单位的职工可以办营业执照吗
  • 多交的税款不退可以吗
  • 保证金抵扣货款情况说明范文
  • 政府会计制度累计盈余为负数
  • 连锁店会计处理流程
  • 什么情况需要预缴
  • 设置资产处置损益的依据
  • 三证合一怎么看税务登记证
  • 企业成立第二年有补贴吗
  • sql语言包括哪三种类型
  • Win10 PC/Mobile Creators快速预览版14959今日推送
  • xp系统网络服务在哪开启
  • ubuntu16.04安装步骤
  • centos8终端
  • 如何在Windows下移动文件
  • win7系统鼠标右键菜单设置
  • win10 20h2怎么装
  • 开启win10
  • linux bzz
  • w8虚拟内存怎么设置
  • 90后的毕业照
  • opengl实现光照效果
  • js的事件绑定
  • nodejs性能对比
  • python 列表分片
  • php获取当前脚本路径
  • 基于stm32的100个毕业设计
  • 炉石传说架是什么意思
  • JavaScript For...In 使用方法
  • jquery的哪个方法可以绑定mouseover
  • 辽宁省耕地占用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设