场景,公司的一个小型项目,需同时支持移动端和PC端。最开始考虑做两个独立的项目。但后来考虑到总共只有4个功能页面,布署起来相对麻烦。所以决定做在一个项目里。

1、升级vue-cli到4.x

npm install -g @vue/cli

2、项目创建

vue create multipage

项目配置不做描述,这里选了node_sass, babel, router, vuex

3、安装element-ui和mint-ui

npm install element-ui
npm install mint-ui

4、配置按需引入。

借助 babel-plugin-component,我们可以只引入需要的组件,以达到打包项目体积的目的。

然后,将 .babelrc 修改为:

module.exports = {
"presets": [
'@vue/cli-plugin-babel/preset'
],
"plugins": [
[
"component",
{
"libraryName": "mint-ui",
"style": true
},
"mint-ui"
],
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk",
"style": true
},
"element-ui"
],
]
}

5、安装axios

npm install axios

6、新建移动端和PC端模板页面。

移动端:public/mobile.html

pc端:public/pc.html

7、删除多余目录和文件,新建移动端目录(src/mobile)和PC端目录(src/pc)

新建移动端入口页(src/mobile/main.js)和首页(src/mobile/index.vue)

8、新建vue.config.js,添加多页面设置:

module.exports = {
pages: {
mobile: {
// page 的入口
entry: "src/mobile/main.js",
// 模板来源
template: "public/mobile.html",
// 在 dist/index.html 的输出
filename: "mobile/index.html",
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: "Index Page",
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ["chunk-vendors", "chunk-common", "mobile"]
},
pc: {
// page 的入口
entry: "src/pc/main.js",
// 模板来源
template: "public/pc.html",
// 在 dist/index.html 的输出
filename: "pc/index.html",
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: "Index Page",
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ["chunk-vendors", "chunk-common", "pc"]
},
}
}

9、查看打包大小:

npm run build

可以看到chunk-vendors.xxx.js大小只有164.32kiB,如果mobile.xxx.js和mobile_index.js做得好,整个项目首次加载应该是超快的。

10、运行项目

npm run serve

提示如下:

App running at:
- Local: http://localhost:8080/
- Network: http://192.168.2.182:8080/

移动端访问方法:http://localhost:8080/mobile/

PC端访问方法:http://localhost:8080/pc/

以上路径可以在vue.config.js中修改。

全剧终。

代码可以在以下地址可以下载:

https://github.com/gavinjzx/multipage

VUE cli 4.x下配置多页面以及同时配置支持element-ui及mint-ui并且优化首页文件大小。的更多相关文章

  1. 基于vue 的 UI框架 -- Mint UI

    网址: http://mint-ui.github.io/docs/#!/zh-cn 官网: http://mint-ui.github.io/#!/zh-cn vue2.0实例: http://bl ...

  2. vue cli 解决跨域 线上 nginx 反向代理配置

    前后分离 axios 接 api 跨域问题如图: 解决办法: 1. npm start 本地开发环境解决: 在webpack配置文件 /config/index.js 里找到 proxyTable 开 ...

  3. SpringMVC 实现文件上传与下载,并配置异常页面

    目录 上传文件的表单要求 Spring MVC实现上传文件 需要导入的jar包 配置MultipartResolver解析器 编写接收上传文件的控制器 Spring MVC实现文件下载 下载文件时的h ...

  4. Express 配置HTML页面访问

    Express 配置HTML页面访问 1.配置模板引擎 Express默认的模板引擎是pug(jade),想要渲染html页面必须要导入对应的模板引擎ejs npm install ejs 安装完成在 ...

  5. druid 配置监控界面和开启spring支持

    1.配置监控页面 <!-- JNDI方式配置数据源 --> <!-- <bean id="dataSource" class="org.sprin ...

  6. 066——VUE中vue-router之rewrite模式下配置404页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Vue CLI 3.0脚手架如何在本地配置mock数据

    前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...

  8. vue cli 3 lintOnSave 配置有时无效问题

    一个使用vue cli 3.2创建的项目,创建时未开启 lintOnSave,后来希望开启并设置为 lintOnSave: 'error',但配置不生效. 解决方法1:新创建项目(此时vue cli ...

  9. vue 配置多页面应用

    前言: 本文基于vue 2.5.2, webpack 3.6.0(配置多页面原理类似,实现方法各有千秋,可根据需要进行定制化) vue 是单页面应用.但是在做大型项目时,单页面往往无法满足我们的需求, ...

随机推荐

  1. 学习Python类的心得

      类的注意事项 1)命名规则 需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的, 是特殊变量,特殊变量是可以直接访问的,不是private变量, ...

  2. WUSTOJ 1287: B304(Java:355ms,C:8ms)

    题目:

  3. vim编辑器中的替换(转)

    转1:https://www.cnblogs.com/david-wei0810/p/6385988.html 转2:https://blog.csdn.net/doubleface999/artic ...

  4. Thrift RPC Golang、C++ Example

    Thrift RPC Example 运行 请直接使用即可,无需拉取任何依赖包. cd $GOPATH/src git clone https://github.com/hunterhug/thrif ...

  5. (八)shiro之jdbcRealm

    pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  6. Java单例设计模式和多例设计模式

    单例设计模型 教学视频链接:https://edu.aliyun.com/course/1011 1,private不可以在类外部访问,但可以在内部访问 2,此时Singleton类内部的instan ...

  7. D盘Program Files 文件夹里文件不显示,没隐藏。怎么才能显示出来?

    D盘里有两个一模一样的Program Files 文件夹,文件夹里文件不显示,没隐藏.怎么才能显示出来?新买不久的电脑,win8.1系统 点击开始---运行---输入“cmd”(没有引号)---在弹出 ...

  8. Django 之一些request封装的常用功能

    一些常用的request对象属性 介绍 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其 ...

  9. Python练习_文件操作_day8

    1. 1.作业 1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读出来并 ...

  10. [Lua性能] 小试验一例

    local s1 = os.clock() local list1 = {} , do list1[#list1 + ] = end local e1 = os.clock() print(" ...