12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Copyright 2017-2020 @polkadot/apps authors & contributors
- // This software may be modified and distributed under the terms
- // of the Apache-2.0 license. See the LICENSE file for details.
- /* eslint-disable @typescript-eslint/camelcase */
- const fs = require('fs');
- const path = require('path');
- const merge = require('webpack-merge');
- const baseConfig = require('./webpack.base.config');
- const { WebpackPluginServe } = require('webpack-plugin-serve');
- const findPackages = require('../../scripts/findPackages');
- const HtmlWebpackPlugin = require('html-webpack-plugin');
- const devtool = false;
- const ENV = process.env.NODE_ENV || 'development';
- const isProd = ENV === 'production';
- const context = __dirname;
- const hasPublic = fs.existsSync(path.join(context, 'public'));
- const plugins = isProd
- ? []
- : [
- new WebpackPluginServe({
- hmr: false, // switch off, Chrome WASM memory leak
- liveReload: false, // explict off, overrides hmr
- port: 3000,
- progress: false, // since we have hmr off, disable
- static: path.join(process.cwd(), '/build')
- })
- ];
- module.exports = merge(
- baseConfig({
- alias: findPackages().reduce((alias, { dir, name }) => {
- alias[name] = path.resolve(context, `../${dir}/src`);
- return alias;
- }, {}),
- context
- }),
- {
- devtool,
- plugins: plugins.concat([
- new HtmlWebpackPlugin({
- PAGE_TITLE: 'Polkadot/Substrate Portal',
- inject: true,
- template: path.join(context, `${hasPublic ? 'public/' : ''}index.html`)
- })
- ])
- }
- );
|