webpack.main.config.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const webpack = require('webpack')
  2. const { merge } = require('webpack-merge')
  3. const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
  4. const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin')
  5. const CopyPlugin = require('copy-webpack-plugin')
  6. const baseConfig = require('./webpack.base.config')
  7. module.exports = merge(baseConfig, {
  8. target: 'electron-main',
  9. entry: {
  10. main: './src/main/main.ts',
  11. preload: './src/main/preload.ts'
  12. },
  13. resolve: {
  14. plugins: [ new TsconfigPathsPlugin({}) ]
  15. },
  16. module: {
  17. rules: [
  18. {
  19. test: /\.tsx?$/,
  20. exclude: /node_modules/,
  21. loader: 'babel-loader',
  22. options: {
  23. cacheDirectory: true,
  24. babelrc: false,
  25. presets: [
  26. [
  27. '@babel/preset-env',
  28. { targets: 'maintained node versions' }
  29. ],
  30. '@babel/preset-typescript'
  31. ],
  32. plugins: [
  33. [ '@babel/plugin-proposal-decorators', { legacy: true } ],
  34. [ '@babel/plugin-proposal-class-properties', { loose: true } ]
  35. ]
  36. }
  37. }
  38. ]
  39. },
  40. plugins: [
  41. new ForkTsCheckerWebpackPlugin({
  42. //reportFiles: ['src/main/**/*']
  43. }),
  44. new webpack.DefinePlugin({
  45. 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
  46. }),
  47. new CopyPlugin({
  48. patterns: [
  49. { from: 'src/assets', to: 'assets' }
  50. ]
  51. })
  52. ]
  53. })