详解vue-cli多页面工程实践第1/2页

时间:2019-03-31
本文章向大家介绍详解vue-cli多页面工程实践第1/2页,主要包括详解vue-cli多页面工程实践第1/2页使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文介绍了vue-cli多页面工程实践,分享给大家,具体如下:

src目录结构

因为是自定义的设置,src下的目录结构需要固定,约定大于配置嘛。

src目录结构:

src/
 components/
 modules/   # 多页面
  index/   # index 单页面
   index.html
   main.js # 入口文件
  page1/
   index.html
   main.js
  group/
   page2/
    index.html
    main.js

build中的配置

utils.js 增加:

// match files
let glob = require('glob');

/**
 * globPath 获取泛路径下的特定文件
 */
exports.getEntities = function (path) {
 let entities = {};
 glob.sync(path).forEach(function (entity) {
  let moduleName = entity.split('/').slice(-2,-1);
  entities[moduleName] = entity
 });
 // eg: { main: './src/module/index/main.js', test: './src/module/group/test/main.js' }
 return entities;
};

webpack.base.conf.js 修改输入和输出:

module.exports = {
 // 遍历获取入口文件
 entry: utils.getEntities("./src/modules/**/main.js"),
 ...
 plugins:[]
};
/***
 * 生成 <module>/index.html
 */
let utils = require('./utils')
let pages = utils.getEntities("./src/modules/**/index.html");
for (let page in pages) {
 let filename = "index.html";
 if(page!=='index'){
  filename = page+"/index.html";
 }
 module.exports.plugins.push(new HtmlWebpackPlugin({
  filename: filename,
  template: pages