美文网首页Vue.js专区Vue.jsVue.js开发技巧
VUE多页应用升级--TO(@vue/cli#3.x)

VUE多页应用升级--TO(@vue/cli#3.x)

作者: advsets | 来源:发表于2018-07-08 23:32 被阅读49次

首先 使用vue脚手架开发多页应用是比较特别的需求,无奈有需求就要有解决的方案办法,之前写过用vue-cli2.x改造生产多页应用的方法,现在想想应该升级换代了。

本想自己配置一个多页的开发配置给大家参考使用,看完源码后发现@vue/cli#3.x已经自带了多页配置了。而且配置简单方便包你一学就会。


@vue/cli#3.x 源码

下面开始升级改造配置

安装使用 @vue/cli#3.x 版本的脚手架

npm install -g @vue/cli
# ......等待
vue create <project-name>
# 或者你也可以使用我已经配置好的 
init https://github.com/advsets/vue-multi-page.git <project-name>
# ......基础选项配置,等待安装包内容

配置 vue.config.js

首先安装 glob 包, 学习glob

npm install --save-dev glob

@vue/cli#3.x 文档
配置 vue.config.js

const fs = require('fs')
const glob = require("glob")

// 简单学习 glob https://www.cnblogs.com/liulangmao/p/4552339.html
const pages = {}
let entries
try {
  // 获取相关入口
  entries = glob('src/pages/*/main.js', {sync: true})
} catch (err) {
  entries = []
  throw err
}
// 格式化生成入口
entries.forEach((file) => {
  const fileSplit = file.split('/')
  const pageName = fileSplit[2]
  let pageHtml = fileSplit.slice(0, 3).join('/') + '/index.html'
  if (!fs.existsSync(pageHtml)) {
    // 入口如果不配置直接使用 _default.html
    pageHtml = fileSplit.slice(0, 2).join('/') + '/_default.html'
  }
  pages[pageName] = {
    entry: file,
    template: pageHtml,
    filename: `${pageName}.html`
  }
})

module.exports = {
  pages,
  ... // ... 其他配置
}

相关目录形式


目录形式

编译后得到目录


编译后

多页配置注意事项

  • 每个多页入口单独使用 router,store 等 牢记
  • 公共组件不应涉及业务操作,如router-link,store 操作等
  • 页面访问 http[s]://localhost/[pages].html (如果有index模块服务器会自动定位index.html)
  • 每个单页其实就是一个独立的模块,你可以视作每个单页都是一个vue项目,只是使用了公共的 components

本文相关

相关文章

  • VUE多页应用升级--TO(@vue/cli#3.x)

    首先 使用vue脚手架开发多页应用是比较特别的需求,无奈有需求就要有解决的方案办法,之前写过用vue-cli2.x...

  • vue多页应用

    vue如何将单页面改造成多页面应用 vue单页多页的开发环境配置+vue的开发思路

  • Vue.js 搭建多页应用

    Vue.js 搭建多页应用 参考vue2.0之多页面的开发 创建项目 仿照index.html,App.vue,m...

  • Nuxt项目搭建到Nuxt项目部署

    a.为什么? Vue.js原来是开发SPA(单页应用)的,但很多人想用Vue开发多页应用(有利于SEO操作),并在...

  • 关于VUE-Router一些记录

    单页应用如何得到多页应用的体验,VUE给我们提供了vue-router,此文不谈论如何安装如何使用,只记录下一些在...

  • vue实现跳转浏览器新的标签页

    一般单页面应用,vue都是通过vue-router来做跳转(this.router.replace),不会像多页应...

  • cnode社区

    面试要点:(单页应用重点在vue-router) 单页应用,页面只有一个 APP组件; vue-router实现页...

  • 前端路由与Vue Router

    Vue Router 是Vue.js的官方插件,用来快速实现单页应用 单页应用 SPA(Single Page A...

  • 2-9 vue-router

    vue-router vue-router 用 Vue.js + vue-router 创建单页应用,是非常简单的...

  • 使用 Vue 开发单页应用全攻略

    使用 Vue 开发单页应用全攻略 网上面有很多关于如何使用 Vue 开发单页应用的教程,从 Vue-cli 的使用...

网友评论

  • 醉蛛:进入路由后页面刷新找不到了 什么情况
    advsets:你是怎么访问路由页面的
  • 601e451da285:GitHub demo无法运行 ....
    advsets:@guid用git clone 下来,到本地

本文标题:VUE多页应用升级--TO(@vue/cli#3.x)

本文链接:https://www.haomeiwen.com/subject/kwoouftx.html