位置: 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 转载请保留说明!

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

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

  • 打造新品牌的十大要点(打造品牌的措施)

    打造新品牌的十大要点(打造品牌的措施)

  • 青年大学习怎么打开

    青年大学习怎么打开

  • 抖音可以删除历史访客记录吗(抖音可以删除历史记录吗)

    抖音可以删除历史访客记录吗(抖音可以删除历史记录吗)

  • oppo手机怎么用OTG传歌到mp3(oppo手机怎么用OTG传歌到mp4)

    oppo手机怎么用OTG传歌到mp3(oppo手机怎么用OTG传歌到mp4)

  • 微信支付分在哪里看(微信分付借钱怎么开通)

    微信支付分在哪里看(微信分付借钱怎么开通)

  • 三天朋友圈针对个人吗(三天的朋友圈是针对一个人还是所有人呢)

    三天朋友圈针对个人吗(三天的朋友圈是针对一个人还是所有人呢)

  • qq一起听歌功能没了怎么办(qq一起听歌功能怎么换歌)

    qq一起听歌功能没了怎么办(qq一起听歌功能怎么换歌)

  • 已发朋友圈如何改可见(已发朋友圈如何取消分组可见)

    已发朋友圈如何改可见(已发朋友圈如何取消分组可见)

  • 微信扫一扫能自动拍照吗(微信扫一扫能自动扣费吗)

    微信扫一扫能自动拍照吗(微信扫一扫能自动扣费吗)

  • 滴滴文字评价没有了(滴滴文字评价没了怎么办)

    滴滴文字评价没有了(滴滴文字评价没了怎么办)

  • b站会员几个人同时登录(b站会员几个人用)

    b站会员几个人同时登录(b站会员几个人用)

  • 勿扰模式有来电记录吗(勿扰模式来电话会震动吗)

    勿扰模式有来电记录吗(勿扰模式来电话会震动吗)

  • 华为手机怎么改微信号(华为手机怎么改密码锁屏)

    华为手机怎么改微信号(华为手机怎么改密码锁屏)

  • 抖音怎么看关注的人什么时候在线(抖音怎么看关注一个人多久了)

    抖音怎么看关注的人什么时候在线(抖音怎么看关注一个人多久了)

  • 怎么截微信语音给人听(怎么截微信语音聊天长图)

    怎么截微信语音给人听(怎么截微信语音聊天长图)

  • 网络操作系统提供的服务(网络操作系统提供的服务包括办公自动化服务等)

    网络操作系统提供的服务(网络操作系统提供的服务包括办公自动化服务等)

  • soul自闭中是什么意思(soul自闭模式别人会看到我吗)

    soul自闭中是什么意思(soul自闭模式别人会看到我吗)

  • 退款关闭什么意思(退款关闭意思退款成功了吗)

    退款关闭什么意思(退款关闭意思退款成功了吗)

  • 台式电脑进不了系统怎么办(台式电脑进不了bios怎么办)

    台式电脑进不了系统怎么办(台式电脑进不了bios怎么办)

  • 怎样删掉抖音小视频(怎么删除抖音中的小程序)

    怎样删掉抖音小视频(怎么删除抖音中的小程序)

  • 怎么退出全国亲情网(怎么退出全国亲情账号)

    怎么退出全国亲情网(怎么退出全国亲情账号)

  • springboot常用注解(springboot的常用注解有哪些)

    springboot常用注解(springboot的常用注解有哪些)

  • v15是什么手机(v15是5g手机吗)

    v15是什么手机(v15是5g手机吗)

  • iphonexs无法关机(苹果xs手机无法关机)

    iphonexs无法关机(苹果xs手机无法关机)

  • 离岸价的含义
  • 社保阶段性减免延长到年底
  • 减少注册资金的理由有哪些
  • 金税盘当月不抵扣如何做分录
  • 会计调转是什么意思
  • 资产处置收益计入利润总额吗
  • 反写了可以重新申报吗
  • 发票上的销货方是什么意思
  • 二房东转租如何办理营业执照
  • 债券作为交易性金融资产的账务处理
  • 差额征税进项如何抵扣
  • 员工的家庭
  • 关于汽车配件的书
  • 劳务公司差额征税账务处理
  • 计提水电费是什么凭证
  • 房地产公司需要和哪些部门打交道
  • 跨年发票如何入账小企业会计准
  • 税款所属期是什么意思举例子
  • 增值税普通发票几个点
  • 1697511073
  • 购进产品样品怎么做分录
  • 超率累进税率和超倍累进税率
  • 修改linux启动项
  • loadprofiles什么意思
  • 超期未认证的进项发票怎么处理
  • web渗透实战
  • dtft与dfs
  • php二维数组添加数据
  • 少数股东权益贷方表示什么意思
  • 小规模企业要交哪些税种
  • 网易游戏二面
  • thinkphp5上传文件
  • pythonjson文件存储
  • uni app ios
  • 对公账户原路退回
  • 判断文件是否存在,存在则删除
  • 什么叫境外所得
  • 直接人工成本包括五险一金吗
  • 印花税计税金额是主营业务收入吗
  • 劳务工资缴税标准
  • Mysql存储过程中的如何遍历一个查询结果集
  • 预开发票后涨价如何进行账务处理?
  • 无形资产摊销计算方法
  • SQL高级应用之同服务器上复制表到另一数据库中并实现去重复
  • 缴纳水土保持补偿费分录是什么
  • 公司一般户需要纳税吗
  • 筹资费用和财务费用一样吗
  • 进项抵扣后的附加税
  • 什么是雇主责任险保单
  • 进货没有发票怎么做账
  • 其他债权投资计提损失准备会引起资产总额增加吗
  • win2003安装
  • 在Windows Server 2008中配置FTP服务
  • linux系统的
  • u盘怎么安装win7镜像文件
  • windows7开机提示盗版
  • ppap是什么文件
  • win10下载英雄联盟运行没反应
  • win8磁盘占用率100%如何解决
  • Metaio in Unity3d 教程--- 一. 搭建环境,运行官方案例
  • javascript抢票
  • jquery animation
  • 猫的猫的视频
  • javascript事件委托的用法及其好处简析
  • jquery easyui插件
  • android study
  • 如何输出反序数
  • python中字典的方法有哪些
  • javascript高级程序设计pdf百度云
  • js获取
  • javascript教程chm
  • thinkphp withjoin
  • 东莞市税务局稽查局
  • 税务关系转移社保怎么办理
  • 广西定额发票查询入口官网
  • 财务负责人变更了之后还有影响吗
  • 增+6=多少
  • 青岛网上申请个体工商户
  • 非法印制发票的后果
  • 城市维护建设税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设