UNI+VITE(Vue3)如何自定义配置打包输出目录?UNI_OUTPUT_DIR?

文章讲述了作者在将Vue2的uniapp项目升级到Vue3时,发现之前的Docker输出目录配置不再生效。通过在package.json中修改build:prod:h5配置为unibuild--modeproduction--outDirdocker/h5,解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缘由

最近项目要跑流水线,运维规定的包输出目录是根目录docker/h5,之前写过vue2版本的uniapp项目,设置如下

"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 UNI_OUTPUT_DIR=docker/h5 vue-cli-service uni-build",

搬到vue3下就失效了,Dcloud中也找不到解决方案。

解决

但是!我提供了正确的解题,如下:
在package.json内作如下配置:

"build:prod:h5": "uni build --mode production --outDir docker/h5",

成功!
不用谢,各位!

Vue 2作为主应用搭配ViteVue 3子应用的架构中,同时引入TypeScript支持,你需要做以下几个步骤来配置: 1. **创建主应用**: 使用Vue CLI 3创建Vue 2项目,并选择包含TypeScript的支持。运行 `vue create main-app` 并选中 "Vue CLI + TypeScript"。 ```sh vue create main-app --typescript ``` 2. **配置主应用的路由**: 在 `main-app/src/router/index.ts` 中,设置默认路由指向Vue 3子应用。你可以通过动态导入和懒加载来避免预加载整个子应用。 ```javascript import { createRouter, createWebHistory } from 'vue-router'; import Home from './views/Home.vue'; import SubApp from './components/SubApp.vue'; const routes = [ // 主应用路由 { path: '/', component: Home }, // 动态导入子应用 { path: '/subapp', component: () => import('./components/SubApp.vue') } ]; export default createRouter({ history: createWebHistory(process.env.BASE_URL), routes }); ``` 3. **创建子应用**: 使用Vue CLI 3Vue 3项目起一个新的名字,比如 `vue create sub-app`。然后在 `sub-app` 中创建一个基本的Vue 3项目并选择TypeScript支持。 4. **子应用的配置**: 设置 `sub-app` 为单文件组件,因为Vite默认支持TS。确保所有组件都导出`default` export,并且导入时不需要手动添加`.vue`后缀。 5. **构建工具集成**: 在主应用的`vite.config.js`中,配置跨域以允许访问子应用。例如,添加以下规则: ```javascript import resolve from 'path.resolve'; // ...其他配置 server: { base: resolve(__dirname, '../'), port: process.env.PORT || 3000, proxy: { '/subapp': { target: 'http://localhost:8080/subapp', changeOrigin: true, secure: false, }, }, }, ``` 这将把主应用的`/subapp`路由代理到子应用运行的端口(在这里假设子应用在`8080`)。 6. **打包构建**: 对于子应用,你需要将其作为单独的静态资源部署,因为Vite通常不会处理嵌套的Vue应用程序。完成后,从`sub-app/dist`目录发布它。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值