当前位置: 首页 > news >正文

vue.config.js 配置多入口文件

在 Vue CLI 项目中配置多入口文件主要是为了支持多页面应用的需求。通常情况下,一个 Vue CLI 项目默认只有一个入口文件 src/main.js,所有的功能和路由都基于这个入口文件展开。但是,对于一些大型应用或者需要独立部署的多个子应用来说,可能需要将不同的功能模块拆分成多个独立的 HTML 页面,每个页面都有自己的入口文件。

背景

在某些场景下,比如企业内部管理系统、复杂的单页应用(SPA)中需要支持多页面结构,或者需要将不同功能模块独立部署的情况下,使用多入口文件会更加合适。

好处

  1. 性能优化:

    • 减少初始加载时间:通过将应用分割成多个较小的页面,可以减少首次加载时需要下载的资源量。
    • 按需加载:用户访问特定页面时才加载该页面的资源,提高了用户体验。
  2. 代码组织:

    • 更清晰的代码结构:每个页面有独立的入口文件,使得代码更容易维护和理解。
    • 模块化开发:不同的团队可以并行开发不同的页面,提高开发效率。
  3. 部署灵活性:

    • 独立部署:不同的页面可以独立部署,不需要整个应用重新打包。
    • 多环境支持:可以在不同的环境中部署不同的页面版本。

示例:

在 vue.config.js 文件中配置多入口文件,可以按照下面的方式来进行

module.exports = {// 配置多页面入口pages: {index: { // 默认入口// page 的入口entry: 'src/index/main.js',// 模板来源template: 'public/index.html',// 在 dist/index.html 的输出filename: 'index.html',// 当使用 title 选项时,// template 中的 <title> 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>title: 'Index Page',// 片段注入到页面的地点,// 可以是 (head / end / body / top / bottom)chunks: ['chunk-vendors', 'chunk-common', 'index']},otherpage: { // 新增的入口// page 的入口entry: 'src/otherpage/main.js',// 模板来源template: 'public/otherpage.html',  // 或者 'public/otherpage/otherpage.html'// 在 dist/otherpage.html 的输出filename: 'otherpage.html',// 当使用 title 选项时,// template 中的 <title> 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>title: 'Other Page',// 片段注入到页面的地点,// 可以是 (head / end / body / top / bottom)chunks: ['chunk-vendors', 'chunk-common', 'otherpage']}}
}

在这个示例中,我们定义了两个入口页面:

  • index: 这是默认的入口页面,其配置可以省略。
  • otherpage: 这是我们新增的入口页面,它有自己的入口文件 src/otherpage/main.js 和模板文件 public/otherpage.html

文件目录如图:
在这里插入图片描述

确保在 src 目录下创建了一个名为 otherpage 的文件夹,并在其中放置 main.js 文件。同时,在 public 目录下创建一个名为 otherpage.html 的模板文件。

这样配置后,当你运行 npm run servenpm run build 命令时,将会生成两个 HTML 文件:index.htmlotherpage.html,每个文件都对应自己的入口文件和资源。

浏览器访问:

  • index.html 页面访问: http://localhost:8230/#/home
    在这里插入图片描述

  • otherpage.html 页面访问 http://localhost:8230/otherpage.html#/home
    在这里插入图片描述

public 中的 otherpage.htmlindex.html 同级目录 或者把 otherpage.html 放入 otherpage 文件夹里, 两者在浏览器里访问的地址都是 http://localhost:8230/otherpage.html#/home

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤
  • DBAPI如何用SQL查询出类似嵌套JSON的树状结构数据(例如省市区父子结构数据)
  • 开源力量,智领云KDP为大数据处理领域注入云原生活力
  • [C++内存管理]new,delete,operator new,opreator delete
  • 生成随机字符串(字母+数字)-批发行业进销存- PHP源码CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构
  • Redis7.0.15 主从复制、哨兵模式搭建
  • Topsis法模型(评价类问题)
  • Sql Server索引的创建及优化
  • 多模态:Seed-story故事生成
  • 七、ESP32-S3上使用MicroPython点亮WS2812智能LED灯珠并通过web控制和JS颜色选择器改变灯珠颜色
  • 记一次 .NET某智慧出行系统 CPU爆高分析
  • 童装商城小程序的设计
  • 【数据结构】哈希应用-海量数据处理
  • MySQL进阶-MySQL管理
  • 【极客日常】Go语言学习干货——从零单排Golang系列合集
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Docker容器管理
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JAVA并发编程--1.基础概念
  • Linux快速复制或删除大量小文件
  • PHP CLI应用的调试原理
  • Python连接Oracle
  • Redis字符串类型内部编码剖析
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 闭包--闭包之tab栏切换(四)
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 记录一下第一次使用npm
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 思维导图—你不知道的JavaScript中卷
  • 微服务核心架构梳理
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ‌JavaScript 数据类型转换
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #职场发展#其他
  • $nextTick的使用场景介绍
  • (1)(1.13) SiK无线电高级配置(五)
  • (PADS学习)第二章:原理图绘制 第一部分
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (三)mysql_MYSQL(三)
  • (四)模仿学习-完成后台管理页面查询
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)visual stdio 书签功能介绍
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .Net语言中的StringBuilder:入门到精通
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [20161101]rman备份与数据文件变化7.txt