12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- const webpack = require('webpack')
- const { merge } = require('webpack-merge')
- const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin')
- const CopyPlugin = require('copy-webpack-plugin')
- const nodeExternals = require('webpack-node-externals')
- const baseConfig = require('./webpack.base.config')
- module.exports = merge(baseConfig, {
- target: 'electron-main',
- entry: {
- main: './src/main/main.ts',
- preload: './src/main/preload.ts',
- },
- resolve: {
- plugins: [new TsconfigPathsPlugin({})],
- },
- externals: [nodeExternals()],
- module: {
- rules: [
- {
- test: /\.ts$/,
- exclude: /node_modules/,
- loader: 'babel-loader',
- options: {
- cacheDirectory: true,
- babelrc: false,
- presets: [
- ['@babel/preset-env', { targets: 'maintained node versions' }],
- '@babel/preset-typescript',
- ],
- plugins: [
- ['@babel/plugin-proposal-decorators', { legacy: true }],
- ['@babel/plugin-proposal-class-properties', { loose: true }],
- ['@babel/plugin-proposal-private-methods', { loose: true }],
- [
- '@babel/plugin-proposal-private-property-in-object',
- { loose: true },
- ],
- ],
- },
- },
- ],
- },
- plugins: [
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': JSON.stringify(
- process.env.NODE_ENV || 'development',
- ),
- }),
- new CopyPlugin({
- patterns: [{ from: 'src/assets', to: 'assets' }],
- }),
- ],
- })
|