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

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

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

  • 网站商城推广的五个注意问题(网上商城网站推广的方式有哪些?)

    网站商城推广的五个注意问题(网上商城网站推广的方式有哪些?)

  • 为什么每页页码一样(为什么每页页码不一样)

    为什么每页页码一样(为什么每页页码不一样)

  • 为什么微信不显示查看接龙(为什么微信不显示在手机界面)

    为什么微信不显示查看接龙(为什么微信不显示在手机界面)

  • 热点会查到手机位置吗(热点会查到手机号码吗)

    热点会查到手机位置吗(热点会查到手机号码吗)

  • 静音未知来电对方听到什么(静音未知来电对方听到什么提示)

    静音未知来电对方听到什么(静音未知来电对方听到什么提示)

  • vivox30耗电快怎么办(vivox30费电)

    vivox30耗电快怎么办(vivox30费电)

  • 群代办和群公告区别(群代办和群公告的区别)

    群代办和群公告区别(群代办和群公告的区别)

  • 充不上电是充电器问题还是线问题(充不上电是充电器坏了吗)

    充不上电是充电器问题还是线问题(充不上电是充电器坏了吗)

  • 3d环绕音乐是什么意思(3d环绕音乐是什么原理)

    3d环绕音乐是什么意思(3d环绕音乐是什么原理)

  • esim是什么意思(手机esim是什么意思)

    esim是什么意思(手机esim是什么意思)

  • 港版iwatch5蜂窝国内能用吗(港版苹果手表5蜂窝大陆能用吗)

    港版iwatch5蜂窝国内能用吗(港版苹果手表5蜂窝大陆能用吗)

  • 发语音对方忙线中是什么意思(发语音对方忙线是怎么回事)

    发语音对方忙线中是什么意思(发语音对方忙线是怎么回事)

  • 戴尔出现diagnostics啥意思(戴尔出现bitlocker恢复界面怎么回到电脑桌面)

    戴尔出现diagnostics啥意思(戴尔出现bitlocker恢复界面怎么回到电脑桌面)

  • QQ视频为什么打不开手电筒(QQ视频为什么打不过去)

    QQ视频为什么打不开手电筒(QQ视频为什么打不过去)

  • 保护膜和钢化膜的区别(保护膜和钢化膜有区别吗)

    保护膜和钢化膜的区别(保护膜和钢化膜有区别吗)

  • 电话手表屏摔坏了怎么办(电话手表屏摔坏了要多少钱)

    电话手表屏摔坏了怎么办(电话手表屏摔坏了要多少钱)

  • 计算机系统的三大组成部分(计算机系统的三总线名称及特点)

    计算机系统的三大组成部分(计算机系统的三总线名称及特点)

  • 支付宝如何更改实名认证的身份证号码(支付宝如何更改支付密码)

    支付宝如何更改实名认证的身份证号码(支付宝如何更改支付密码)

  • 电脑上没有打印机驱动怎么办(电脑上没有打印机怎么保存)

    电脑上没有打印机驱动怎么办(电脑上没有打印机怎么保存)

  • 华为m6平板可以打电话吗(华为m6平板可以插电话卡么)

    华为m6平板可以打电话吗(华为m6平板可以插电话卡么)

  • 淘宝怎么设置农村淘宝(淘宝怎么设置农村淘宝代收)

    淘宝怎么设置农村淘宝(淘宝怎么设置农村淘宝代收)

  • 手机yy怎么加好友(手机yy如何加入频道语音)

    手机yy怎么加好友(手机yy如何加入频道语音)

  • 微信上的横屏是什么意思(微信上的横屏模式是什么)

    微信上的横屏是什么意思(微信上的横屏模式是什么)

  • reno和reno2的区别(opporeno2和reno哪个性价比高)

    reno和reno2的区别(opporeno2和reno哪个性价比高)

  • iphone11有无线充电吗(iPhone11有无线充电吗)

    iphone11有无线充电吗(iPhone11有无线充电吗)

  • iphone手机电池最大容量低于多少要换电池(苹果电池最高多少)

    iphone手机电池最大容量低于多少要换电池(苹果电池最高多少)

  • cad剖面图的绘制步骤(cad剖面图绘制方法)

    cad剖面图的绘制步骤(cad剖面图绘制方法)

  • 什么公司需要缴纳印花税
  • 购进货物支付的运输费用如何计算增值税
  • 城建税计税方法
  • 小规模纳税人征税率为多少
  • 个税在资产负债表中体现吗
  • 销售使用过的固定资产放弃减税
  • 初级职称需要进行继续教育吗
  • 购买私募基金有风险吗
  • 公司车辆卖给个人怎么处理账务
  • 一般纳税人变成小规模 在电子税务局哪里可以找到
  • 发票专用章换了需要登记吗
  • 广告公司会议记录内容
  • 辅导期增值税一般纳税人申报材料
  • 平价转让股权如何交税
  • 职工退休金计入个人账户
  • 商誉转销会计分录
  • 企业支付的产品广告费应计入什么账户借方
  • 房租费用在本年内可以不摊销吗?
  • 海关增值税抵扣是全额抵扣所得税
  • 土地证是商业用地
  • 小规模企业税务筹划
  • 技术咨询合同书
  • 投入资本公积需要结转吗
  • 收的的挂靠费一般是几个点
  • 空调维修详情介绍
  • 进项税额转出月底如何结转
  • win7系统无法启用网络发现
  • 政府会计的记账基础是什么?
  • iphone操作系统
  • 怎样提高网速呢知乎
  • php判断为空的方法有哪些
  • 其他综合收益属于什么类
  • 结算备付金的账户是什么
  • 抵偿债务会计处理
  • 产品销售账务处理办法
  • 职工福利费会计账务处理
  • win11怎么桌面快捷方式
  • 个体户要交哪些税怎么交
  • 财务费用核算的内容没有
  • php错误级别有哪些
  • laravel技巧
  • 生成stl基本过程
  • 常见反爬策略
  • 小规模纳税人收入是含税还是不含税
  • 织梦网站怎么改logo
  • 农产品进项税额抵扣范围
  • 所有者权益是怎么排列的
  • 分期收款发出商品是什么意思
  • 对方开票少开几角会计分录
  • 房屋租赁合同印花税计税依据
  • 外债借款利率
  • 差旅费的现金流
  • 收到商业承兑汇票的会计分录
  • 如何对会计感兴趣
  • 暂估应付账款余额在贷方
  • 账簿按账页格式排序
  • 扩展什么
  • centos编译安装tcpdump工具
  • win8.1补丁打不上
  • macbook分屏功能
  • linux搭建gitlab
  • win7 系统设置
  • iso镜像怎么装
  • winmysqladmin.exe - winmysqladmin进程是什么意思
  • xp查看用户名和密码
  • mac计算器怎么用
  • win1020h2版本千万别更新
  • win7 ie
  • windows打开
  • nodejs连接达梦数据库
  • nodejs实战教程
  • jquery lazyload
  • node.js ts
  • 电子专票票种核定
  • 上海税务发票自动抵扣
  • 专项扣除赡养老人是什么意思
  • 河北发票查询真伪查询
  • 关于研发费用的审计程序,下列说法中错误的是
  • 国家税务网站官网
  • 江苏税务局网上预缴税流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设