Vue.js专区Vue.jsVue.js开发技巧

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

2018-07-08  本文已影响49人  advsets

首先 使用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,
  ... // ... 其他配置
}

相关目录形式


目录形式

编译后得到目录


编译后

多页配置注意事项

本文相关

上一篇 下一篇

猜你喜欢

热点阅读