解读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项目,每个页面都是独立的,所以使用路由的方式跳转是跳转不过去的,不过我查到有相关的配置方式好像是可以的,这个大家就自己去查阅一下吧

总结

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

相关文章

  • 基于vue2实现左滑删除功能

    基于vue2实现左滑删除功能

    这篇文章主要为大家详细介绍了基于vue2实现左滑删除功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解vue中使用transition和animation的实例代码

    详解vue中使用transition和animation的实例代码

    这篇文章主要介绍了详解vue中使用transition和animation的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • vue中如何创建多个ueditor实例教程

    vue中如何创建多个ueditor实例教程

    这篇文章主要给大家介绍了关于vue中如何创建多个ueditor的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • 使用vue实现各类弹出框组件

    使用vue实现各类弹出框组件

    这篇文章主要介绍了使用vue实现各类弹出框组件,文中给大家提到了vue中常用的dialog组件的封装,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • vue组件中使用props传递数据的实例详解

    vue组件中使用props传递数据的实例详解

    这篇文章主要介绍了vue组件中使用props传递数据的实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • Vue.js自定义指令学习使用详解

    Vue.js自定义指令学习使用详解

    这篇文章主要为大家详细介绍了Vue.js自定义指令的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • vue使用wavesurfer.js解决音频可视化播放问题

    vue使用wavesurfer.js解决音频可视化播放问题

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的声纹可视化插件,功能十分强大,在Vue框架中嵌入使用该插件,今天重点给大家介绍下vue使用wavesurfer.js解决音频可视化播放问题,感兴趣的朋友一起看看吧
    2022-04-04
  • Vue项目报错:Uncaught SyntaxError: Unexpected token '<'的解决方法

    Vue项目报错:Uncaught SyntaxError: Unexpected token '<&a

    最近在做vue项目时,需要引入一个第三方的js文件,在index.html中通过以下方式引入JS文件编译后就报了这个问题,这篇文章主要给大家介绍了关于Vue项目报错:Uncaught SyntaxError: Unexpected token '<'的解决方法,需要的朋友可以参考下
    2022-08-08
  • vue中的router-view父子组件传参方式

    vue中的router-view父子组件传参方式

    这篇文章主要介绍了vue中的router-view父子组件传参方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • ElementUI多个子组件表单的校验管理实现

    ElementUI多个子组件表单的校验管理实现

    这篇文章主要介绍了ElementUI多个子组件表单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论