场景,公司的一个小型项目,需同时支持移动端和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. java源码 -- LinkedHashSet

    问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHashSet是有序的吗? (4)LinkedHashS ...

  2. 微软的一道网红Java面试题

    题目: 给定一个int类型数组:int[] array = new int[]{12, 2, 3, 3, 34, 56, 77, 432}, 让该数组的每个位置上的值去除以首位置的元素,得到的结果,作 ...

  3. Nginx关联php安装及启动

    Nginx 1.10.2 php 5.6.30 [root@nginx local]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (C ...

  4. spring cloud微服务实践一

    最近在学习spring框架.其中spring cloud在微服务方面很火,所以在学习过程中,也做一些记录. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, sprin ...

  5. ORA-16401: archivelog rejected by RFS

    ORA-16401: archivelog rejected by RFS 无线出单系统邮件告警10.111.20.1 1.     报错 SYS > ! oerr ora 16041 1604 ...

  6. Unity性能优化-遮挡剔除

    1. Occlusion Culling-遮挡剔除的含义:没有在Camear视野范围内的游戏物体不进行渲染Render(默认情况下,Unity是会渲染所有GameObject,无论Camear是否看得 ...

  7. .net core 依赖注入在特性中的应用

    .net core 依赖注入在特性中的应用,不知道怎么用属性注入,那么在特性中的构造函数里,怎么用接口的方法呢? 来一个简单的例子: 主要思路是把ServiceProvider 静态全局化: publ ...

  8. 针对IE6 7 8当独写样式

    IE8的格式: .foot{padding:12px 10px\9;} //在后面加\9 IE7的格式: .foot{*padding:12px 10px\9;} //在前面加* IE6的格式: .f ...

  9. Java后端HttpClient Post提交文件流 及服务端接收文件流

    客户端将文件转换为流发送: 依赖的包: <dependency> <groupId>org.apache.httpcomponents</groupId> < ...

  10. CVE-2018-2879 - anniversary

    For the anniversary of the discovery of CVE-2018-2879 by Sec Consult (https://sec-consult.com/en/blo ...