* 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>
49 lines
1.2 KiB
JavaScript
49 lines
1.2 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 TerserPlugin = require('terser-webpack-plugin');
|
|
const path = require('path');
|
|
const ENV = process.env.NODE_ENV || 'development';
|
|
const isProd = ENV === 'production';
|
|
|
|
function createWebpack () {
|
|
return [
|
|
{
|
|
entry: './src/electron.ts',
|
|
mode: ENV,
|
|
module: {
|
|
rules: [
|
|
{
|
|
exclude: /(node_modules)/,
|
|
test: /\.(js|ts|tsx)$/,
|
|
use: [
|
|
require.resolve('thread-loader'),
|
|
{
|
|
loader: require.resolve('babel-loader'),
|
|
options: require('@polkadot/dev/config/babel')
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
node: {
|
|
__dirname: false
|
|
},
|
|
optimization: {
|
|
minimize: !!isProd,
|
|
minimizer: [new TerserPlugin()]
|
|
},
|
|
output: {
|
|
filename: 'electron.js',
|
|
path: path.join(__dirname, '/build')
|
|
},
|
|
target: 'electron-main'
|
|
}
|
|
];
|
|
}
|
|
|
|
module.exports = createWebpack();
|