Webpack 将网页包配置应用于电子主进程

Webpack 将网页包配置应用于电子主进程,webpack,electron,babeljs,Webpack,Electron,Babeljs,给定使用构建的应用程序,我想将webpack配置应用于主进程(app/main.js文件) 事实上,Web包加载器只考虑到渲染器进程(对应于除app/main.js和app/menu.js之外的所有文件)。 这使得代码的可重用性变得困难,特别是如果您希望在主进程中使用redux(例如在菜单中或处理多个窗口时很有用) 例如,没有调用TypeScript加载程序,因此main不能是TypeScript文件,也不能导入ts文件,这会导致导入时出现其他类似问题 但是请注意,可以使用babel,因此即使在

给定使用构建的应用程序,我想将webpack配置应用于主进程(
app/main.js
文件)

事实上,Web包加载器只考虑到渲染器进程(对应于除
app/main.js
app/menu.js
之外的所有文件)。 这使得代码的可重用性变得困难,特别是如果您希望在主进程中使用redux(例如在菜单中或处理多个窗口时很有用)

例如,没有调用TypeScript加载程序,因此
main
不能是TypeScript文件,也不能导入ts文件,这会导致导入时出现其他类似问题

但是请注意,可以使用babel,因此即使在主流程中,基本ES6也可以


所以,这一切都在标题中:我如何设置应用程序,使
app/main.js
以某种方式考虑到网页配置,或者在应用程序启动之前构建?

为了解决这个问题,我为主进程添加了一个特定的脚本和配置:

"build-main-development": "cross-env NODE_ENV=development node --trace-warnings -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.development.js --progress",

"build-main": "cross-env NODE_ENV=production node --trace-warnings -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.js --progress --profile --colors"
这里是配置。您需要将
electron main
设置为目标

import webpack from 'webpack';
import merge from 'webpack-merge';
import BabiliPlugin from 'babili-webpack-plugin';
import baseConfig from './webpack.config.base';

export default merge(baseConfig, {
  devtool: 'source-map',
  entry: ['babel-polyfill', './app/main.development'],
  output: {
    filename: './main.js'
  },
  plugins: [
    new BabiliPlugin(),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ],

  /**
   * https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works
   */
  target: 'electron-main',
  node: {
    __dirname: false,
    __filename: false
  },
});

你找到解决办法了吗?我正在尝试让typescript在一个电子应用程序的主要流程上工作,尽管没有使用与您相同的模板(我正在使用)。嗨@Jules,我发布了一个答案,告诉我它是否有帮助。我只是在现有配置的基础上为主进程添加了一个特定的配置,并添加了一个构建步骤。是的,这看起来比我尝试的更可行,我尝试将webpack设置为在同一配置中完成两个目标——它起到了作用,除了启动主进程有时发生在渲染器进程代码准备就绪之前。