diff options
author | August Skare <post@augustskare.no> | 2018-10-19 22:02:15 +0800 |
---|---|---|
committer | August Skare <post@augustskare.no> | 2018-10-19 22:05:09 +0800 |
commit | 7d7f54c751a2a5b8fca6791fb6685f4b5f969fff (patch) | |
tree | ab720f884ddf74953e119c7207ef4e52eb1760aa /packages/dev-tools-pages/webpack.config.js | |
parent | 736e1717fa4e59594e76694f7f6cc9dd0b45f1a9 (diff) | |
download | dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar.gz dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar.bz2 dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar.lz dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar.xz dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.tar.zst dexon-sol-tools-7d7f54c751a2a5b8fca6791fb6685f4b5f969fff.zip |
Feature/build step (#2)
* BundleAnalyzerPlugin
* lazy load highlight.js
* seperate bundles for each page
* prerender apps to html on build
* preload important font files
* dont prerender code copy button
* fix woff2 variant of font
* added missing doctype
* remove metatags component
Diffstat (limited to 'packages/dev-tools-pages/webpack.config.js')
-rw-r--r-- | packages/dev-tools-pages/webpack.config.js | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/packages/dev-tools-pages/webpack.config.js b/packages/dev-tools-pages/webpack.config.js index a016c6b04..d025737f7 100644 --- a/packages/dev-tools-pages/webpack.config.js +++ b/packages/dev-tools-pages/webpack.config.js @@ -1,13 +1,24 @@ const path = require('path'); const webpack = require('webpack'); const TerserPlugin = require('terser-webpack-plugin'); +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; +const HtmlWebpackPlugin = require('html-webpack-plugin'); const childProcess = require('child_process'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const CleanWebpackPlugin = require('clean-webpack-plugin'); + +const pages = require('./pages'); const config = { - entry: ['./ts/index.tsx'], + entry: { + compiler: './ts/pages/Compiler.tsx', + cov: './ts/pages/Cov.tsx', + profiler: './ts/pages/Profiler.tsx', + trace: './ts/pages/Trace.tsx', + }, output: { path: path.join(__dirname, '/public'), - filename: 'bundle.js', + filename: 'bundle-[name].js', chunkFilename: 'bundle-[name].js', publicPath: '/', }, @@ -70,17 +81,25 @@ const config = { }; module.exports = (_env, argv) => { - let plugins = []; + let plugins = [ + new CleanWebpackPlugin('public'), + ...pages.map(p => new HtmlWebpackPlugin(p)), + new CopyWebpackPlugin([{ from: 'assets/crawl.html', to: 'index.html' }, { from: 'assets/fonts', to: 'fonts' }]), + ]; if (argv.mode === 'development') { config.mode = 'development'; } else { config.mode = 'production'; + config.output.filename = 'bundle-[name].[chunkhash].js'; + config.output.chunkFilename = 'bundle-[name].[chunkhash].js'; + plugins = plugins.concat([ new webpack.DefinePlugin({ 'process.env': { - NODE_ENV: JSON.stringify(process.env.NODE_ENV), + NODE_ENV: JSON.stringify(process.env.NODE_ENV || config.mode), }, }), + //new BundleAnalyzerPlugin(), ]); } console.log('i 「atl」: Mode: ', config.mode); |