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

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

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

  • 自媒体在变现时遇到的10大凶险情形(自媒体变现百度知道)

    自媒体在变现时遇到的10大凶险情形(自媒体变现百度知道)

  • 支付宝加密怎么设置方法(支付宝加密怎么取消)

    支付宝加密怎么设置方法(支付宝加密怎么取消)

  • 粤康码黄码怎么申诉(粤康码黄码怎么来的)

    粤康码黄码怎么申诉(粤康码黄码怎么来的)

  • 苹果x指纹设置的方法(苹果x 指纹)

    苹果x指纹设置的方法(苹果x 指纹)

  • 网络的组成(神经网络的组成)

    网络的组成(神经网络的组成)

  • 重启并更新以继续获得支持是什么意思(现在重启以继续获得支持怎么关掉)

    重启并更新以继续获得支持是什么意思(现在重启以继续获得支持怎么关掉)

  • 腾讯会议wpsppt不能全屏(腾讯会议wpsppt不能播放)

    腾讯会议wpsppt不能全屏(腾讯会议wpsppt不能播放)

  • 微信400步大概走了多远(微信400步大概多少米)

    微信400步大概走了多远(微信400步大概多少米)

  • 关机微信运动还计步吗(关机微信运动还变吗)

    关机微信运动还计步吗(关机微信运动还变吗)

  • 苹果快充有标志吗(苹果快充标志闪)

    苹果快充有标志吗(苹果快充标志闪)

  • 抖音限关多久可以回关(抖音限关多久可以开直播)

    抖音限关多久可以回关(抖音限关多久可以开直播)

  • 怎样缓存电视剧(爱奇艺怎样缓存电视剧)

    怎样缓存电视剧(爱奇艺怎样缓存电视剧)

  • 华为mate30rs保时捷什么时候可以买

    华为mate30rs保时捷什么时候可以买

  • 手机屏幕乱跳或自动操作,是怎么回事(手机屏幕乱跳或自动操作能修吗)

    手机屏幕乱跳或自动操作,是怎么回事(手机屏幕乱跳或自动操作能修吗)

  • 微信加入黑名单还能收到短信吗(微信加入黑名单了怎么找出来)

    微信加入黑名单还能收到短信吗(微信加入黑名单了怎么找出来)

  • 在淘宝点退款,已经过了处理时间怎么办(淘宝退款成功还能反悔吗)

    在淘宝点退款,已经过了处理时间怎么办(淘宝退款成功还能反悔吗)

  • 如何找回京东删除订单(如何找回京东删除的订单)

    如何找回京东删除订单(如何找回京东删除的订单)

  • 手机qq群标签怎么设置(qq群标签怎么写)

    手机qq群标签怎么设置(qq群标签怎么写)

  • 诺基亚怎么开机(老款诺基亚怎么开机)

    诺基亚怎么开机(老款诺基亚怎么开机)

  • iwatch4防水级别(applewatch4防水性能怎么样)

    iwatch4防水级别(applewatch4防水性能怎么样)

  • obs可以直播快手吗(obs怎么直播快手)

    obs可以直播快手吗(obs怎么直播快手)

  • 无法连接到你的组织的激活服务器(无法连接到你的相机,请重启手机)

    无法连接到你的组织的激活服务器(无法连接到你的相机,请重启手机)

  • oppo视频怎么剪辑(oppo视频怎么剪切掉中间一部分画面)

    oppo视频怎么剪辑(oppo视频怎么剪切掉中间一部分画面)

  • macbook下载的文件在哪里(macbook下载的文件怎么删除)

    macbook下载的文件在哪里(macbook下载的文件怎么删除)

  • 收到的实收资本都能用来做什么
  • 应交企业所得税会计分录
  • 公司出售房产缴纳税金如何凭证
  • 以前年度损益调整在利润表中怎么填
  • 鸡蛋普通发票能不能抵扣增值税呢
  • 电信没有基站为什么信号也很好
  • 个人所得税汇算清缴情况报告
  • 文化事业建设费怎么申报
  • 使用权资产是什么类科目
  • 什么叫税控盘清卡
  • 小规模纳税人和个体工商户的税收政策
  • 多缴纳的税款不退税怎么入账
  • 冲减利润怎么做账
  • 对方电子承兑发出多长时间可以到账
  • 购买无形资产的价款超过正常信用
  • 3%增值税率包括哪些
  • 关于增值税普通发票情况的函范文
  • 营改增的作用
  • 文化事业建设费税收优惠政策2023
  • 应付利润是会计科目吗
  • 基金经费管理办法
  • 实物出资需要发票吗
  • 发票盖章盖成了财务章有影响吗
  • 当月未抵扣进项税在进项税额明细表怎么填
  • 房地产企业土地出让金抵减销项税额
  • 企业转让库存股,应按实际收到的金额
  • 主机 bios
  • 以前年度多计提的附加税怎么调账
  • 劳务公司找的临时工工伤怎么赔
  • php数组函数有哪些
  • 办理营业执照费用和流程
  • 路由器怎么重置网络
  • windows dvd maker是什么
  • 税收返还如何做账
  • 发行股票的手续费、佣金如何会计处理?
  • 分公司可以给总公司开发票么
  • 本地部署gpt4
  • 中兴网管操作手册
  • yii框架教程
  • 本年利润借方红字代表什么意思
  • 什么是行政单位任命的事业单位工作人员
  • 五险一金的会计怎么做账
  • 销售价格低于成本价,税务机关是否有权纳税调整?
  • 抽烟罚款会计分录
  • 固定资产二级科目装修
  • sqlserver服务请求失败或服务未及时响应
  • 税控系统技术维护费全额抵扣分录
  • 个人所得税手续费返还账务处理
  • 待认证进项税怎么转出
  • 小微企业减免附加税税率
  • 小规模纳税人已付款对方不开发票几年了会计分录
  • 直接人工成本包括管理人员开的工资吗
  • 经纪代理服务范围
  • 百分百控股收益都是股东的么
  • 购进销售产品的会计分录
  • 分公司账务处理需要注意哪些
  • win8系统和win7哪个好
  • ubuntu更新设置在哪
  • freebsd安装mysql
  • 电脑显示window
  • gnaupdaemon.exe是什么
  • win10预览版最新
  • centos7软件安装
  • 系统中想禁止运行怎么办
  • macbookair2015安装win7 单系统
  • Win7系统打开D盘文件后怎么没有后退箭头
  • li的简单应用
  • 用python编写程序
  • linux重启关闭打开达梦数据库
  • 批处理是什么
  • python静态函数
  • ugy与ngy
  • JavaScript中setFullYear()方法的使用详解
  • intent.setdata
  • android混淆后怎么破解
  • 吉林省耕地占用税实施办法
  • 单位车辆购置税怎么申报缴纳
  • 南京政务服务中心
  • 公司欠税无力偿还怎么办
  • 增值税发票税款数额是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设