var path = require('path') var utils = require('./utils') var webpack = require('webpack') var utils = require('./utils') var config = require('../config') var vueLoaderConfig = require('./vue-loader.conf') var StylelintPlugin = require('stylelint-webpack-plugin') var FaviconsWebpackPlugin = require('favicons-webpack-plugin') var ExtractTextPlugin = require('extract-text-webpack-plugin') var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') function resolve (dir) { return path.join(__dirname, '..', dir) } module.exports = { entry: { style: './src/components/style.scss' }, module: { rules: [{ test: /\.(ttf|eot|otf|woff2?)(\?.*)?$/, loader: 'file-loader', options: { name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } }] .concat(utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true })), }, output: { path: config.build.assetsRoot, filename: '[name].js', publicPath: config.build.assetsPublicPath }, plugins: [ new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false }, sourceMap: true }), // extract css into its own file new ExtractTextPlugin({ filename: '[name].css', }), // Compress extracted CSS. We are using this plugin so that possible // duplicated CSS from different components can be deduped. new OptimizeCSSPlugin({ cssProcessorOptions: { safe: true } }), ] }