webpack.main.config.js 1.3 KB

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