本文介绍了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            
1
02-04 14:47