CommonsChunkPlugin不适用于电子

时间:2017-08-18 15:02:28

标签: webpack electron commonschunkplugin

我有一个电子应用程序,我正在使用Webpack 2构建。我有一个自定义模块(mymodule),我想成为另一个包引用的单独包。问题是,当我在主进程中使用CommonsChunkPlugin时,电子会在应用启动时锁定。我可以看到电子徽标出现在文档中,但窗口永远不会出现。

请注意,它不必是我写的模块,我可以lodash使用CommonsChunkPlugin并获得相同的结果。

有趣的是,如果我以相同的方式使用CommonsChunksPlugin和渲染器进程,一切正常。

我整理了一个显示此问题的simple electron app

github repo提供了有关情况的更多细节,但以下是重要部分:

电子主要过程:

const mymod = require('./mymodule')

app.on('ready', function() {
    console.log(mymod.abc);

    mainWindow = new BrowserWindow({width: 800, height: 600});

    mainWindow.loadURL(url.format({
        pathname: require('./index.html')
    }));
});

webpack config for main:

entry: {
    main: path.join(__dirname, './main.js'),
    mymod: ['./mymodule']
},

output: {
    path: __dirname + '/build/',
    publicPath: __dirname + '/build/',
    filename: '[name].bundle.js'
},


plugins: [
    new webpack.optimize.CommonsChunkPlugin('mymod')
]

在此状态下,该应用无法运行。然后,如果您进入webpack.main.js文件并注释掉这些行中CommonsChunkPlugin的使用,它将开始工作:

entry: {
    main: path.join(__dirname, './main.js'),
    // mymod: ['./mymodule']
},

output: {
    path: __dirname + '/build/',
    publicPath: __dirname + '/build/',
    filename: '[name].bundle.js'
},


plugins: [
    // new webpack.optimize.CommonsChunkPlugin('mymod')
]

这是我的环境信息:

MacOS:    10.12.6
node:     v6.11.0
npm:      3.10.10
electron: v1.6.12
wepback2: 3.5.5

那么这里发生了什么?这是电子邮件,网络包还是我的代码的错误?

0 个答案:

没有答案