var webpack = require('webpack'); var OfflinePlugin = require('offline-plugin'); module.exports = { context: __dirname + "/app", entry: ["./main.js"], output: { path: __dirname + "/dist", publicPath: '/dist/', filename: "bundle.js" }, module: { loaders: [ {test: /\.vue$/, loader: 'vue'}, {test: /\.js$/, loader: 'babel', exclude: /node_modules/}, {test: /\.json$/, loader: 'json'}, {test: /\.(png|jpg|gif|svg)$/, loader: 'url', query: {limit: 10000, name: '[name].[ext]?[hash]'}}, {test: /\.css$/, loader: 'style-loader!css-loader'}, {test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"}, {test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"}, {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream"}, {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file"}, {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml"} ] }, plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "window.jQuery": "jquery" }) ] }; if (process.env.NODE_ENV === 'production') { module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({'process.env': {NODE_ENV: '"production"'}}), new webpack.optimize.UglifyJsPlugin({compress: {warnings: false}, comments: false}), new webpack.optimize.OccurenceOrderPlugin(), new webpack.optimize.DedupePlugin(), new OfflinePlugin({ caches: 'all', scope: '/dist/', updateStrategy: 'all', version: 'v1', ServiceWorker: { output: 'sw.js'}, AppCache: {directory: 'appcache/'} }) ]) }