UNPKG

minimal-electron-typescript-boilerplate

Version:
83 lines (80 loc) 2.76 kB
const webpack = require('webpack'); const merge = require('webpack-merge'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); const baseConfig = require('./webpack.base.config'); module.exports = merge.smart(baseConfig, { target: 'electron-renderer', entry: { app: './src/renderer/index.tsx' }, module: { rules: [ { test: /\.tsx?$/, exclude: /node_modules/, loader: 'babel-loader', options: { cacheDirectory: true, babelrc: false, presets: [ [ '@babel/preset-env' ], '@babel/preset-typescript', '@babel/preset-react' ], plugins: [ [ 'babel-plugin-styled-components', { 'ssr': true, 'displayName': true, 'preprocess': false } ], [ '@babel/plugin-transform-runtime', { 'absoluteRuntime': false, 'corejs': false, 'helpers': true, 'regenerator': true, 'useESModules': true, } ], '@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-nullish-coalescing-operator' ] } }, { test: /\.(gif|png|jpe?g|svg)$/, use: [ 'file-loader', { loader: 'image-webpack-loader', options: { disable: true } } ] }, { enforce: 'pre', test: /\.js$/, loader: 'source-map-loader' } ] }, plugins: [ new ForkTsCheckerWebpackPlugin({ reportFiles: ['src/renderer/**/*'] }), new webpack.NamedModulesPlugin(), new HtmlWebpackPlugin(), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') }) ] });