UNPKG

way-of-life

Version:
78 lines (75 loc) 2.25 kB
const path = require('path') const glob = require('glob') const HtmlWebpackPlugin = require('html-webpack-plugin') const PurifyCSSPlugin = require('purifycss-webpack') const CopyWebpackPlugin = require('copy-webpack-plugin') module.exports = function (env) { const outputPath = '../docs' const publicPath = env === 'production' ? 'https://lab.openbloc.fr/way-of-life/' : '' return { entry: { bundle: './src/js/embed.js' }, output: { path: path.resolve(__dirname, outputPath), publicPath: publicPath, filename: `js/lab-[name].js${env === 'production' ? '?[chunkhash:8]' : ''}` }, resolve: { extensions: ['*', '.js', '.jsx', '.wasm'] }, module: { rules: [ { test: /\.(js|jsx)$/, use: 'babel-loader' }, { test: /[.]html$/, loader: 'html-loader?' + JSON.stringify({ pretty: true }) }, { test: /\.scss$/, use: [ 'style-loader?sourceMap', 'css-loader?sourceMap', 'sass-loader?sourceMap' ] }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' + '&hash=sha512&digest=hex&name=fonts/[name].[ext]?[hash:8]' }, { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file-loader?hash=sha512&digest=hex&name=fonts/[name].[ext]?[hash:8]' }, { test: /\.(jpe?g|png|gif|svg|ico)$/, loaders: [ 'file-loader?hash=sha512&digest=hex&name=images/[name].[ext]?[hash:8]' ] }, { test: /\.wasm$/, loaders: ['wasm-loader'] } ] }, plugins: [ new HtmlWebpackPlugin({ template: 'src/embed.html', filename: 'embed.html' }), new PurifyCSSPlugin({ paths: glob.sync(path.join(__dirname, 'src/*.html')) }), new CopyWebpackPlugin([{ from: 'src/js/wasm/*.wasm', to: 'js/[name].wasm' }]) ], devServer: { host: '0.0.0.0', disableHostCheck: true }, devtool: env === 'production' ? 'source-map' : 'source-map', node: { fs: 'empty' } } }