位置: 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万,要交多少税
  • 销项税没有进项税多
  • 基金公司管理费收入怎么入账
  • 年度所得税汇算清缴表去哪里找
  • 城建税教育费附加税率怎么计算
  • 公司委托法人代收款
  • 职工福利费和教育费的计提比例
  • 未结转是什么意思
  • 鸿蒙系统智慧场所在哪
  • 王者荣耀中马可波罗的一技能和大招
  • 成本核算怎么核算
  • 出售货物货款预缴增值税
  • 跳线和短接
  • 网页提示摄像头未授权
  • 下载的压缩文件打不开
  • 苹果15手机价格和图片颜色
  • xp系统可以安装cad吗
  • 技术服务辅助设施包括
  • 收取个人挂靠的管理费用要交税吗?
  • PHP:Memcached::incrementByKey()的用法_Memcached类
  • 怎样改善现金流量比率
  • oeloader.exe - oeloader是什么进程 有什么用
  • vue修改打包后静态资源路径的修改
  • 解决问题
  • Madonna della Corona教堂,意大利 (© Volodymyr Kalyniuk/Alamy)
  • 什么叫股权溢价之谜?
  • 不合格的设备怎么处理
  • 工会经费申报表填写说明
  • 账户维护费计入什么会计科目
  • php面向对象编程
  • php高并发api接口怎么处理
  • bootstrap-
  • python单链表的创建
  • 商业承兑汇票如何查询
  • 收到对方假发票可以索赔吗
  • 供热管道属于什么结构类型
  • 企业研发费用的优惠政策
  • 增值税抵扣联是什么意思
  • 更正申报失败,维持原申报?
  • 建筑劳务公司工作内容
  • 预期损失el
  • 住宿费用抵扣税款会计分录
  • 租赁房屋怎么做账
  • 印花税账务处理
  • 以银行承兑汇票支付购买原材料款
  • 公司法规定股权转让需要满足什么条件
  • 扶贫差旅费
  • 亏损股东现金补偿怎么算
  • 金税盘是怎样的
  • 企业固定资产内部控制风险防范体系的构建原则
  • 关于合同履约成本的表述错误的有
  • ubuntu删除vmware
  • 笔记本电脑bios更新
  • 在win7操作系统中通过什么可以查看计算机的配置
  • win7设置路由器上网
  • WIN10怎么彻底删除works2
  • linux ntp查看
  • linux shell脚本运行程序
  • 使用ssh登录远程服务器有两种方法
  • android有哪几个特点
  • 点评js异步加载什么意思
  • googlevoice使用教程
  • 电子发票查询官网入口
  • 北京社保外埠城镇职工和外埠农村劳动力啥区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设