* Basic Electron setup. * wip * Integrate electron with react components from apps workspace * Refactor package.json scripts. * Copy public files from apps. * Import 'initSettings' from apps workspace, fix code style, move scripts into global package.json * Add build electron step into CI * Split webpack file into renderer and main * Add HMR into renderer.config * Add optimization process in main webpack configuration * Add ts translation in main webpack config and fix electron start script * Update dependencies. * Update dependencies. Change package name. * Move initSettings func into Api component * Extract webpack base config and move initSettings into react-api * Fix webpack config and simplify initSettings import * WIP on packing electron app (electron.ts doesnt have relative path) * Fix relative path to the main index.html * Add README in electron package, update main package.json scripts, add mention about electron-package in main README * Remove unused dependencies form electron package.json * Missing file from merge * Fix main README and change name field in main package.json * Update dependencies. * Remove old webpack-dev-serve (creating issues with plugin) Co-authored-by: jozwiak <kubencki@gmail.com> Co-authored-by: Jaco Greeff <jacogr@gmail.com>
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
// 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`)
|
|
})
|
|
])
|
|
}
|
|
);
|