| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /* eslint-disable */
- const { getConfig, dev } = require('./webpack.config.base');
- const { spawn, execSync } = require('child_process');
- const CopyPlugin = require('copy-webpack-plugin');
- const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
- const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
- let terser = require('terser');
- /* eslint-enable */
- let electronProcess;
- const mainConfig = getConfig({
- target: 'electron-main',
- devtool: dev ? 'inline-source-map' : false,
- watch: dev,
- entry: {
- main: './src/main',
- },
- plugins: [
- new CopyPlugin({
- patterns: [
- {
- from:
- 'node_modules/@cliqz/adblocker-electron-preload/dist/preload.cjs.js',
- to: 'preload.js',
- transform: async (fileContent, path) => {
- return (
- await terser.minify(fileContent.toString())
- ).code.toString();
- },
- },
- ],
- }),
- ],
- });
- const preloadConfig = getConfig({
- target: 'web',
- devtool: false,
- watch: dev,
- entry: {
- 'view-preload': './src/preloads/view-preload',
- },
- plugins: [],
- });
- if (process.env.ENABLE_EXTENSIONS) {
- preloadConfig.entry['popup-preload'] = './src/preloads/popup-preload';
- preloadConfig.entry['extensions-preload'] =
- './src/preloads/extensions-preload';
- }
- if (process.env.START === '1') {
- mainConfig.plugins.push({
- apply: (compiler) => {
- compiler.hooks.afterEmit.tap('AfterEmitPlugin', () => {
- if (electronProcess) {
- try {
- if (process.platform === 'win32') {
- execSync(`taskkill /pid ${electronProcess.pid} /f /t`);
- } else {
- electronProcess.kill();
- }
- electronProcess = null;
- } catch (e) {}
- }
- electronProcess = spawn('npm', ['start'], {
- shell: true,
- env: process.env,
- stdio: 'inherit',
- });
- });
- },
- });
- }
- module.exports = [mainConfig, preloadConfig];
|