vue 多页面打包
vue3.0 多页面指定打包文件夹或者修改默认打包public 文件夹
起因
在一个多页面项目中, 有pc端和移动端的单页面, 移动端会用到vconsole 和cordova.js 这样的库,而在pc 端却不需要
所以想着,打包或者开发中,运行时,框架自动识别时pc端的项目还是 移动端的项目而且还可以根据环境变量等的配置的找到entry的入口。
解决方案
根据环境变量和vue3.0的mode 配置entry 入口
你需要了解的知识
vue.3.0的环境变量和模式(可以去官网了解)
package.json的设置
"start": "vue-cli-service serve",
"build:pc": "vue-cli-service build --mode pc",
"build:mobile": "vue-cli-service build --mode mobile",
对应的env 文件命名
.env
.env.pc
.env.mobile
.env 文件内容
NODE_ENV='development'
# PC端
BUILD_MODE='pc'
# 移动端
BUILD_MODE='mobile'
.env.pc 文件内容
NODE_ENV='production'
BUILD_MODE='pc'
.env.mobile 文件内容
NODE_ENV='production'
BUILD_MODE='mobile'
然后你就可以在vue.config.js 中写逻辑来 ,根据环境变量 NODE_ENV 和BUILD_MODE 来配置entry 了
也可以像下面一样,起一个pageConfig 的文件夹,专门对页面入口,模板等做配置, 然后环境变量BUILD_MODE的值就是文件夹名
参考代码
let pages = require('./pageConfig/' + process.env.BUILD_MODE)
pc 文件夹内容
module.exports = {
pc: {
entry: './src/pages/pc/index/index.js',
filename: 'index.html',
title: '首页'
}
}
指定文件打包目录
如果你顺利的完成了上一个章节的内容,你可能会遇到这个问题,当你上pc端生产环境时,会发现dist文件夹中包含着移动端的js库或者或者一些移动端的代码,这时你不需要的。你肯定会去找或者想如何指定文件夹进行打包,生成dist?
解决
建立两个目录
pc 打包目录
— pc_public
— index.html
– fullpage.js(pc端需要的一些库)
— public
—index.html
—vconsole.js ( 移动端需要的一些库)
vue.config.js添加如下代码
chainWebpack: config => {
console.log(config.plugin('copy'))
config.plugin('copy')
.tap(args => {
args[0][0].from = path.resolve('./pc_public')
return args
})
其实就是 在vue.config.js改变 配置webpack打包的插件copyde 配置项 属性 ,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本