解读vue分页面打包方式

 更新时间:2023年01月14日 08:37:08   作者:风雨前行者  
这篇文章主要介绍了解读vue分页面打包方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue分页面打包

最近了解了一些关于vue分页面打包的方式,因为接触的可能不是很深入,所以就简单记录一下

第一步

修改vue目录结构,修改为下图的方式

大致分为:

1、在src下创建一个存储所有页面的文件夹,

2、创建每个独立页面的文件夹,用来存储src下所有的文件(例如:main.js,App.vue、store,router)等等这些文件,放到这个你创建好的文件夹中(相当于小型的vue项目)

3、每个独立页面都有一个这种小型的vue文件夹

第二步

修改配置文件,修改vue.config.js页面如下图:

为了防止页面多是发生混乱,我新建了一个config文件夹(上图目录的config文件夹),用来修改页面配置

这个pageConfig.js文件配置如下:

const config = {
  pageA: {
    entry: "./src/pages/pageA/main.js",// 入口文件
    template: "public/index.html", // 模板html文件
    filename: "pageA.html" // 修改打包后的html文件名
  },
  pageB: {
    entry: "./src/pages/pageB/main.js",
    template: "public/index.html",
    filename: "pageB.html"
  }
}
 
module.exports = config

然后再vue.config.js文件中配置一下代码

至于为什么要用三木判断呢,是因为在项目打包时,打包独立页面需要有一层包裹,但是启动项目时不需要,因为我在这里判断了一下(因为没有找到更好的解决方式,所以如果有好方法的小伙伴可以分享一下)

const config = require("./config/pageConfig.js");
const projectName = process.env.PROJECT_NAME;
 
module.exports = {
   pages:projectName ? { index: config[projectName] } : config,  // 打包时需要自定义文件名 启动不需要
   publicPath: './',
   outputDir: 'dist/' + projectName + '/', //  打包后的文件夹名称,默认dist
   devServer: {
    index: 'pageA.html'//  默认启动页面
  }
}

第三步

以上步完成后需要配置一下 package.json这个页面,配置如下:

只需要修改一下打包方式即可,启动的话我还是比较喜欢整个项目都启动起来(因为看到有很多人都是单独页面启动的,觉得很麻烦)

使用下面的corss-env的话是需要下一个插件的,可以使用:npm install --save-dev cross-env 方式进行下载 

代码中配置的 PROJECT_NAME=pageA 是自定义的,看你给页面起的名字是什么就配置什么,获取这个的方式就是上图中 process.env.PROJECT_NAME 方法可以直接获取到等号右边的名字

 "scripts": {
    "build:pageA": "cross-env PROJECT_NAME=pageA vue-cli-service build",
    "build:pageB": "cross-env PROJECT_NAME=pageB vue-cli-service build",
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

自此,配置完上面这些东西,你的项目就可以进行打包了,打包的方式就是你再pageage.json中配置的打包方式 我的方式就是  npm run build:pageA  或者 npm run build:pageB 打包出来的效果就是两个单独的页面配置

然后还想说一下我发现的两个注意事项

第一个

当我们使用UI框架时,最好使用按需引入的方式(大致可以想象一下,如果有多个页面,每个页面都使用整套的UI框架,会是什么场景,你的项目我估计就要炸了)

第二个 

每个页面直接如果想要相互跳转,使用的方式是  window.localhost.href = “页面名字”或者 window.open("页面名字") 这种方式,这是因为每一项目都相当于小型的vue项目,每个页面都是独立的,所以使用路由的方式跳转是跳转不过去的,不过我查到有相关的配置方式好像是可以的,这个大家就自己去查阅一下吧

总结

好了目前知道的也就这么多,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue实现简单网页计算器

    Vue实现简单网页计算器

    这篇文章主要为大家详细介绍了Vue实现简单网页计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • VUE兄弟组件传值操作实例分析

    VUE兄弟组件传值操作实例分析

    这篇文章主要介绍了VUE兄弟组件传值操作,结合实例形式分析了VUE兄弟组件传值操作的原理、步骤、实现方法及相关注意事项,需要的朋友可以参考下
    2019-10-10
  • vue中异步函数async和await的用法说明

    vue中异步函数async和await的用法说明

    这篇文章主要介绍了vue中异步函数async和await的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 简单谈谈vue的过渡动画(推荐)

    简单谈谈vue的过渡动画(推荐)

    下面小编就为大家带来一篇简单谈谈vue的过渡动画(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • uniapp中如何基于vue3实现输入验证码功能

    uniapp中如何基于vue3实现输入验证码功能

    本文介绍了如何使用uniapp和vue3创建一个手机验证码输入框组件,通过封装VerificationCodeInput.vue组件,并在父组件中引入,可以实现验证码输入功能,适合需要增加手机验证码验证功能的开发者参考使用
    2024-09-09
  • vue 表格单选按钮的实现方式

    vue 表格单选按钮的实现方式

    这篇文章主要介绍了vue 表格单选按钮的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 解决Vue_localStorage本地存储和本地取值问题

    解决Vue_localStorage本地存储和本地取值问题

    这篇文章主要介绍了解决Vue_localStorage本地存储和本地取值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 如何在vue中使用HTML 5 拖放API

    如何在vue中使用HTML 5 拖放API

    这篇文章主要介绍了如何在vue中使用HTML 5 拖放API,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • 浅谈Vue 初始化性能优化

    浅谈Vue 初始化性能优化

    本篇文章主要介绍了浅谈Vue 初始化性能优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • axios封装与传参示例详解

    axios封装与传参示例详解

    这篇文章主要给大家介绍了关于axios封装与传参的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论