1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
const path = require('path'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const autoprefixer = require('autoprefixer'); const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = { entry: [ './src/entry-index.js' ], output: { path: path.join(__dirname, 'build'), filename: 'js/[name].bundle.js' }, plugins: [ new CleanWebpackPlugin(['build']), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), new webpack.optimize.UglifyJsPlugin({ compressor: { warnings: false, } }), new webpack.optimize.OccurrenceOrderPlugin(), new HtmlWebpackPlugin({ template: './src/index.html', minify: { collapseWhitespace: true, keepClosingSlash: true, removeComments: true, }, xhtml: true }), new ExtractTextPlugin({ filename: './css/bundle.min.css', disable: false, allChunks: true, }) ], module: { rules: [{ test: /\.js$/, use: [ {loader: 'babel-loader', options: { presets: [ ['latest', {moduels: false}] ] }} ] }, { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [ {loader: 'css-loader', options: {minimize: true}}, {loader: 'postcss-loader', options: { plugins: (loader) => [ autoprefixer({ browsers: ['last 2 version', 'ie >= 10'] }) ] }} ], publicPath: '../' }) }, { test: /\.(scss|sass)$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [ {loader: 'css-loader', options: {minimize: true}}, {loader: 'sass-loader', options: {outputStyle: 'compact'}}, {loader: 'postcss-loader', options: { plugins: (loader) => [ autoprefixer({ browsers: ['last 2 version', 'ie >= 10'] }) ] }} ], publicPath: '../' }) }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: [ {loader: 'url-loader', options: { limit: 10000, mimetype: 'application/font-woff', name: 'fonts/[name].[ext]' }} ] }, { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: [ {loader: 'file-loader', options: { name: 'fonts/[name].[ext]' }} ] }, { test: /\.(jp(e)g|gif|png)?$/, use: [ {loader: 'file-loader', options: { name: 'img/[name].[ext]' }} ] }] } };
|