const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const merge = require("webpack-merge");
const webpackConfigBase = require('./webpack.base.js');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
const glob = require("glob")
const webpack = require('webpack')
let getModules = function () {
let modules = [];
let files = glob.sync('./src/packages/*');
files.forEach(i => {
modules.push(i.split('/').pop())
})
return modules;
}
// const host='127.0.0.1';
const host='www.dev.kpread.com';
const devConfig = {
mode: "development",
entry: {
'cover-select': './src/index.js',
'input-search': './src/index.js',
'referral-home': './src/index.js',
'referral-novel': './src/index.js',
'referral-select': './src/index.js',
'reply-form': './src/index.js',
'reply-form-vip': './src/index.js',
'sign-form': './src/index.js',
'sign-form-vip': './src/index.js',
'subscribe-delay-form': './src/index.js',
'subscribe-delay-vip': './src/index.js',
'subscribe-form': './src/index.js',
'title-select': './src/index.js',
'channel-group-select': './src/index.js',
'index': './src/index.js',
},
resolve: {
alias: {
vue$: 'vue/dist/vue.esm.js'
}
},
plugins:[
new CleanWebpackPlugin(),
new webpack.HotModuleReplacementPlugin()
],
devServer: {
host:host,
contentBase: './dist',
compress: true,
port: 9001,
hot: true,
open: true,
proxy: {
'/admin': {
target: 'http://'+host,
changeOrigin: true
},
'/':{
target: 'http://'+host+':9001/index/index.html',
}
}
},
output:{
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
publicPath: "/",
}
};
const entries = getModules()
entries.forEach(module => {
devConfig.plugins.push(
new HtmlWebpackPlugin({
template: path.resolve(__dirname, 'src/packages', module, 'index.html'),
title: module,
inject: "head",
filename: module + "/index.html",
chunks: [module],
entries: entries
}),
);
});
module.exports = merge(devConfig, webpackConfigBase);