diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-10-11 18:44:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-11 18:44:00 +0800 |
commit | 8941b6cee5b56fab6d3b89ac8a899f21d5c86350 (patch) | |
tree | d958e69af58dfc6a959b2b7bb4f5f9fedd3884a6 /packages/dev-tools-pages/webpack.config.js | |
parent | a5a033c359a1a00a144ae0655080b4e6d0e43c88 (diff) | |
parent | e4351789d20df12ab8d70021acb5674bb59cae0c (diff) | |
download | dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar.gz dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar.bz2 dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar.lz dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar.xz dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.tar.zst dexon-sol-tools-8941b6cee5b56fab6d3b89ac8a899f21d5c86350.zip |
Merge pull request #1125 from 0xProject/feature/starter-dev-tools-pages
Initial project scaffolding for dev tools pages
Diffstat (limited to 'packages/dev-tools-pages/webpack.config.js')
-rw-r--r-- | packages/dev-tools-pages/webpack.config.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/packages/dev-tools-pages/webpack.config.js b/packages/dev-tools-pages/webpack.config.js new file mode 100644 index 000000000..6dfcf74e7 --- /dev/null +++ b/packages/dev-tools-pages/webpack.config.js @@ -0,0 +1,86 @@ +const path = require('path'); +const webpack = require('webpack'); +const TerserPlugin = require('terser-webpack-plugin'); +const childProcess = require('child_process'); + +const config = { + entry: ['./ts/index.tsx'], + output: { + path: path.join(__dirname, '/public'), + filename: 'bundle.js', + chunkFilename: 'bundle-[name].js', + publicPath: '/', + }, + devtool: 'source-map', + resolve: { + modules: [path.join(__dirname, '/ts'), 'node_modules'], + extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'], + alias: { + ts: path.join(__dirname, '/ts'), + less: path.join(__dirname, '/less'), + }, + }, + module: { + rules: [ + { + test: /\.js$/, + loader: 'source-map-loader', + exclude: [ + // instead of /\/node_modules\// + path.join(process.cwd(), 'node_modules'), + path.join(process.cwd(), '../..', 'node_modules'), + ], + }, + { + test: /\.tsx?$/, + loader: 'awesome-typescript-loader', + }, + { + test: /\.md$/, + use: 'raw-loader', + }, + { + test: /\.less$/, + loader: 'style-loader!css-loader!less-loader', + exclude: /node_modules/, + }, + { + test: /\.css$/, + loaders: ['style-loader', 'css-loader'], + }, + ], + }, + optimization: { + minimizer: [ + new TerserPlugin({ + sourceMap: true, + }), + ], + }, + devServer: { + port: 3572, + disableHostCheck: true, + }, +}; + +module.exports = (_env, argv) => { + let plugins = []; + if (argv.mode === 'development') { + config.mode = 'development'; + } else { + config.mode = 'production'; + plugins = plugins.concat([ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(process.env.NODE_ENV), + }, + }), + ]); + } + console.log('i 「atl」: Mode: ', config.mode); + + config.plugins = plugins; + console.log('i 「atl」: Plugin Count: ', config.plugins.length); + + return config; +}; |