UNPKG

vue-ui-wl

Version:

vue component

58 lines (53 loc) 1.97 kB
var utils = require('./utils') var webpack = require('webpack') var config = require('../config') var merge = require('webpack-merge') var baseWebpackConfig = require('./webpack.base.conf') var HtmlWebpackPlugin = require('html-webpack-plugin') var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') var entry = require('./getentry') // add hot-reload related code to entry chunks Object.keys(baseWebpackConfig.entry).forEach(function (name) { baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) }) var webpackConfig = merge(baseWebpackConfig, { module: { rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) }, // cheap-module-eval-source-map is faster for development devtool: '#cheap-module-eval-source-map', plugins: [ new webpack.DefinePlugin({ 'process.env': config.dev.env }), // https://github.com/glenjamin/webpack-hot-middleware#installation--usage new webpack.HotModuleReplacementPlugin(), new webpack.NoEmitOnErrorsPlugin(), // https://github.com/ampedandwired/html-webpack-plugin new FriendlyErrorsPlugin() ] }) var pages = Object.keys(entry.getEntry('src/demo/*.html', 'src/demo/')); pages.forEach(function(pathname) { var conf = { filename: config.build.assetsRoot + '/demo/' + pathname + '.html', template: 'src/demo/' + pathname + '.html', inject: true, minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency' }; if (pathname in baseWebpackConfig.entry) { conf.inject = 'body'; conf.chunks = ['vendors', pathname]; conf.hash = true; } webpackConfig.plugins.push(new HtmlWebpackPlugin(conf)); }) module.exports = webpackConfig