added initial files

This commit is contained in:
2025-07-31 00:48:48 +02:00
parent 411cc26582
commit 2a3dc51ce9
193 changed files with 110293 additions and 0 deletions
+130
View File
@@ -0,0 +1,130 @@
/**
* Webpack config for production electron main process
*/
const path = require('path');
const fse = require('fs-extra');
// eslint-disable-next-line
const webpack = require('webpack');
const { merge } = require('webpack-merge');
const TerserPlugin = require('terser-webpack-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
fse.copySync(
path.resolve(__dirname, '../', 'public', 'native'),
path.resolve(__dirname, '../', 'build', 'native'),
{}
);
const baseConfig = {
externals: [],
module: {
rules: [
{
test: /\.node$/,
loader: 'native-ext-loader',
options: {
basePath: ['native'],
emit: false
}
},
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
cacheDirectory: true,
presets: [['@babel/preset-env', { targets: { node: '14' } }]],
plugins: [
'@babel/plugin-proposal-nullish-coalescing-operator',
'@babel/plugin-proposal-optional-chaining'
]
}
}
}
]
},
output: {
path: path.join(__dirname, '..', 'build'),
// https://github.com/webpack/webpack/issues/1114
libraryTarget: 'commonjs2'
},
/**
* Determine the array of extensions that should be used to resolve modules.
*/
resolve: {
extensions: ['.js', '.jsx', '.json'],
modules: [path.join(__dirname, '..', 'build'), 'node_modules']
},
plugins: [
new webpack.EnvironmentPlugin({
NODE_ENV: process.env.NODE_ENV,
REACT_APP_RELEASE_TYPE: process.env.REACT_APP_RELEASE_TYPE,
SENTRY_DSN: process.env.SENTRY_DSN
}),
new webpack.NamedModulesPlugin()
]
};
module.exports = merge(baseConfig, {
devtool: 'source-map',
mode: process.env.NODE_ENV,
target: 'electron-main',
entry: './public/electron.js',
output: {
path: path.join(__dirname, '..'),
filename: './build/electron.js'
},
optimization: {
minimizer: [
new TerserPlugin({
parallel: true,
sourceMap: true,
cache: true
})
]
},
plugins: [
new BundleAnalyzerPlugin({
analyzerMode:
process.env.OPEN_ANALYZER === 'true' ? 'server' : 'disabled',
openAnalyzer: process.env.OPEN_ANALYZER === 'true'
}),
/**
* Create global constants which can be configured at compile time.
*
* Useful for allowing different behaviour between development builds and
* release builds
*
* NODE_ENV should be production so that modules do not perform certain
* development checks
*/
new webpack.EnvironmentPlugin({
NODE_ENV: 'production',
DEBUG_PROD: false,
START_MINIMIZED: false
})
],
/**
* Disables webpack processing of __dirname and __filename.
* If you run the bundle in node.js it falls back to these values of node.js.
* https://github.com/webpack/webpack/issues/2010
*/
node: {
__dirname: false,
__filename: false
}
});