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);