因为之前有人问我配置vue多页面网站的问题,我在网上找了找教程,试了大概三四个,大概都是如出一辙,所以我就痛下决心,既然研究vue了,这个必须得搞明白的,也算排下小坑,我不知道你们在网上找的教程怎么样,可否能行,不过由于我弄得不行,所以就自己整了下,感觉弄完完美运行…….虽然很费事,但是研究研究代码,感觉恍然大悟,所以分享下
。
也不墨迹那么多了,也不详解了,直接上代码,修改步骤方法,有问题可以回复我哈~
(注:说一下我用的是vue官方脚手架<没注版本,应该就是最新的了 >,在此基础之上修改的)
(写的有点糙,各位谅解,先这样看下,我会在修改的)
Build文件夹下内容的修改
Utils,js文件区别
加上
var glob = require('glob')
加上
// 获取多级的入口文件
exports.getMultiEntry = function (globPath) {
var entries = {},
basename, tmp, pathname;
glob.sync(globPath).forEach(function (entry) {
basename = path.basename(entry, path.extname(entry));
tmp = entry.split('/').splice(-4);
var pathsrc = tmp[0] + '/' + tmp[1];
if (tmp[0] == 'src') {
pathsrc = tmp[1];
}
//console.log(pathsrc)
pathname = pathsrc + '/' + basename; // 正确输出js和html的路径
entries[pathname] = entry;
//console.log(pathname+'-----------'+entry);
});
return entries;
}
Webpack.base,conf.js
加上
// 多页面设置入口文件
var entries = utils.getMultiEntry('./src/' + config.moduleName + '/**/**/*.js'); // 获得入口js文件
var chunks = Object.keys(entries);
console.log(entries, 'entries-base')
找到下面这段话注释掉
// context: path.resolve(__dirname, '../'),
// entry: {
// app: './src/main.js'
// },
注释掉的下面加上
entry: entries,
在webpack.dev.conf.js上面加上这两句话
var entries = utils.getMultiEntry('./src/' + config.moduleName + '/**/**/*.js'); // 获得入口js文件
var chunks = Object.keys(entries);
找到下面这段注释掉
// new HtmlWebpackPlugin({
// filename: 'index.html',
// template: 'index.html',
// inject: true
// }),
// copy custom static assets
// new CopyWebpackPlugin([
// {
// from: path.resolve(__dirname, '../static'),
// to: config.dev.assetsSubDirectory,
// ignore: ['.*']