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

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

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

  • 飞机上可以充电吗(飞机上可以充电宝多大毫安最大)

    飞机上可以充电吗(飞机上可以充电宝多大毫安最大)

  • 三星i9008l刷机(三星i9008l刷机)(三星i9000刷机包)

    三星i9008l刷机(三星i9008l刷机)(三星i9000刷机包)

  • 小米空气净化器怎么连接wifi(小米空气净化器重置滤芯)

    小米空气净化器怎么连接wifi(小米空气净化器重置滤芯)

  • 联通短信查询行程轨迹怎么查(联通短信查询行程卡)

    联通短信查询行程轨迹怎么查(联通短信查询行程卡)

  • 一加9rt和一加有什么区别(一加9rt和一加9区别)

    一加9rt和一加有什么区别(一加9rt和一加9区别)

  • 荣耀30s支持防水功能吗(荣耀30是否支持防水)

    荣耀30s支持防水功能吗(荣耀30是否支持防水)

  • 笔记本电脑钉钉直播没有麦克风怎么办(笔记本电脑钉钉直播没有声音怎么办)

    笔记本电脑钉钉直播没有麦克风怎么办(笔记本电脑钉钉直播没有声音怎么办)

  • 苹果换了id为何更新软件还是旧id(iphone id换了怎么还是之前的id)

    苹果换了id为何更新软件还是旧id(iphone id换了怎么还是之前的id)

  • 把对方手机号码拉黑还能收到信息和电话吗(把对方手机号码拉黑还能加微信吗)

    把对方手机号码拉黑还能收到信息和电话吗(把对方手机号码拉黑还能加微信吗)

  • 8mp摄像头是什么意思(48mp+8mp+2mp摄像头)

    8mp摄像头是什么意思(48mp+8mp+2mp摄像头)

  • 优酷快进有震动怎么取消(手机优酷画面快进声音正常)

    优酷快进有震动怎么取消(手机优酷画面快进声音正常)

  • 优酷是腾讯免流吗(在腾讯视频看优酷视频免流吗)

    优酷是腾讯免流吗(在腾讯视频看优酷视频免流吗)

  • 电脑怎么设置壁纸自己的照片(电脑怎么设置壁纸锁屏)

    电脑怎么设置壁纸自己的照片(电脑怎么设置壁纸锁屏)

  • 为什么ipad耗电特别快(为什么iPad耗电慢)

    为什么ipad耗电特别快(为什么iPad耗电慢)

  • 7p8p手机壳通用吗(7p的手机壳)

    7p8p手机壳通用吗(7p的手机壳)

  • 5g双模机是什么意思(5g双模是啥意思)

    5g双模机是什么意思(5g双模是啥意思)

  • 苹果6s plus怎么无线充电(苹果6s plus怎么清理内存空间)

    苹果6s plus怎么无线充电(苹果6s plus怎么清理内存空间)

  • u盘删除的文件会在电脑回收站吗(u盘删除的文件可以恢复吗)

    u盘删除的文件会在电脑回收站吗(u盘删除的文件可以恢复吗)

  • iPad怎么看ppt(iPad怎么看内存)

    iPad怎么看ppt(iPad怎么看内存)

  • 淘宝小二在哪(淘宝的小二在哪里)

    淘宝小二在哪(淘宝的小二在哪里)

  • 支付宝打不开哈罗单车(支付宝咋打不开)

    支付宝打不开哈罗单车(支付宝咋打不开)

  • 探探怎么解除包月(探探如何取消)

    探探怎么解除包月(探探如何取消)

  • 华为p30拍照设置(华为p30拍照设置清晰度)

    华为p30拍照设置(华为p30拍照设置清晰度)

  • 什么是电能和电功率(图文)(电和电能是什么关系)

    什么是电能和电功率(图文)(电和电能是什么关系)

  • 企业签订技术培训合同是否需要缴纳印花税?
  • 借款利息收入计提分录
  • 事业单位资产划转流程
  • 增值税改革后增值税申报表怎么填写
  • 公司员工提成怎么交个税
  • 预交增值税设备租赁是否可抵扣
  • 行政单位预算资金拨付流程
  • 企业哪些做法违背了营销道德
  • 公司代扣代缴社保怎么操作
  • 企业注销合适还是转让出去合适
  • 企业报税盘入账应该记入哪个科目?
  • 供货方代垫运费计入原材料
  • 员工离职 社保
  • 怎样查询单位上月社保缴纳情况
  • 增值税专用发票有效期是多长时间
  • 购买理财产品是不是非法集资
  • 旅游休闲用地
  • 年底增值税有余额吗
  • 我的初级备考经验怎么写
  • 坏账准备什么时候转回
  • 工资计入劳务成本
  • 生产车间的费用会计分录
  • 桌面图标变成了白色的
  • 开机默认开启数字键
  • windows11怎么设置默认应用
  • 荣耀x10的鸿蒙系统怎么开启
  • 微软即将终止当前系统版本
  • 原材料明细账有记税吗
  • 符合条件的小型微利企业,减按
  • 结算借款的账务处理办法
  • uniapp按钮
  • 生产车间人员招聘要求
  • 小程序报错怎么解决
  • php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
  • XHProf报告字段含义的解析
  • 非同级财政拨款收入属于什么科目
  • 支票沾水
  • 程序员后续发展
  • 广东省工科赛智能配送
  • 股息和未分配利润的区别
  • 员工通行费合法报销
  • 税务网如何填三方协议
  • 社保断交一个月但是后面正常缴费
  • 个人所得税纳税记录怎么查询
  • 应交所得税的科目是什么
  • 汇兑损益的会计处理原则
  • mysql5.6.24
  • 其他应付款二级明细科目有哪些
  • 预收款项可以开发票吗
  • 建筑附加税税率
  • 金税盘全额抵扣申报表怎么填
  • 定期定额怎么申报个人所得税
  • 长期待摊费用进项税分录
  • 咨询费开发票应该选哪一项?
  • 累计折旧的计提会计分录
  • mysql时间语句
  • win7打印机共享关闭密码保护
  • win10的时间设置
  • ubuntu字体文件
  • 制作xp系统盘需要多大u盘
  • win10变成win8怎么办
  • iptables 增加
  • win7系统打开我的电脑一闪
  • Win8如何根据需要自定义文件管理器导航窗格
  • 检查linux是否安装了,可用哪些命令
  • jquery移动节点的方法
  • 如何理解shell
  • linux怎么使用shell
  • python图像移动
  • js 模拟滑动
  • dropdownlist绑定数据
  • android自定义view流程
  • unity2d摇杆
  • 用python绘制一条直线
  • python怎么在网上赚钱
  • androidstudio和idea
  • 小规模纳税人开1%普票怎么报税
  • 为什么要征收城乡土地
  • 报考国税
  • 建筑工程异地预缴税款时间限制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设