Add ability to watch / autoreload in development mode

Fixes: https://github.com/jitsi/jitsi-meet-electron/issues/103

Co-authored-by: Akshit Kr Nagpal <akshitkrnagpal@gmail.com>
This commit is contained in:
Saúl Ibarra Corretgé 2018-08-16 10:58:56 +02:00
parent 7c23809c2a
commit c50e6344f7
5 changed files with 238 additions and 270 deletions

View File

@ -21,9 +21,14 @@ autoUpdater.logger = require('electron-log');
autoUpdater.logger.transports.file.level = 'info';
/**
* Load debug utilities (don't open the DevTools window by default though).
* When in development mode:
* - Load debug utilities (don't open the DevTools window by default though)
* - Enable automatic reloads
*/
require('electron-debug')({ showDevTools: false });
if (isDev) {
require('electron-debug')({ showDevTools: false });
require('electron-reload')(path.join(__dirname, 'build'));
}
/**
* The window object that will load the iframe with Jitsi Meet.

437
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -5,14 +5,15 @@
"main": "./build/main.js",
"productName": "Jitsi Meet",
"scripts": {
"start": "webpack --config ./webpack.config.js --mode development && electron ./build/main.js",
"start": "webpack --config ./webpack.main.js --mode development && concurrently 'npm:watch' 'electron ./build/main.js'",
"clean": "rm -rf node_modules build dist",
"lint": "eslint . && flow",
"build": "webpack --config ./webpack.config.js --mode production",
"build": "webpack --config ./webpack.main.js --mode production && webpack --config ./webpack.renderer.js --mode production",
"pack": "npm run build && electron-builder --dir",
"dist": "npm run build && electron-builder",
"postinstall": "electron-builder install-app-deps",
"validate": "npm ls"
"validate": "npm ls",
"watch": "webpack --config ./webpack.renderer.js --mode development --watch --watch-poll"
},
"build": {
"appId": "org.jitsi.jitsi-meet",
@ -89,6 +90,7 @@
"electron-debug": "2.0.0",
"electron-is-dev": "0.3.0",
"electron-log": "2.2.16",
"electron-reload": "1.2.5",
"electron-updater": "3.1.1",
"electron-window-state": "4.1.1",
"history": "4.7.2",
@ -114,6 +116,7 @@
"babel-preset-env": "1.7.0",
"babel-preset-react": "6.24.1",
"babel-preset-stage-1": "6.24.1",
"concurrently": "3.6.1",
"css-loader": "1.0.0",
"devtron": "1.4.0",
"electron": "3.0.0-beta.5",

24
webpack.main.js Normal file
View File

@ -0,0 +1,24 @@
const path = require('path');
module.exports = {
target: 'electron-main',
entry: { main: './main.js' },
output: {
path: path.resolve('./build'),
filename: '[name].js'
},
node: {
__dirname: true
},
externals: [ {
'jitsi-meet-electron-utils': 'require(\'jitsi-meet-electron-utils\')',
'electron-debug': 'require(\'electron-debug\')',
'electron-reload': 'require(\'electron-reload\')'
} ],
resolve: {
modules: [
path.resolve('./node_modules')
]
}
};

View File

@ -3,7 +3,14 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
const ELECTRON_VERSION = require('./package.json').devDependencies.electron;
const commonConfig = {
module.exports = {
target: 'electron-renderer',
entry: { app: './app/index.js' },
plugins: [
new HtmlWebpackPlugin({
template: './app/index.html'
})
],
output: {
path: path.resolve('./build'),
filename: '[name].js'
@ -55,8 +62,7 @@ const commonConfig = {
]
},
externals: [ {
'jitsi-meet-electron-utils': 'require(\'jitsi-meet-electron-utils\')',
'electron-debug': 'require(\'electron-debug\')'
'jitsi-meet-electron-utils': 'require(\'jitsi-meet-electron-utils\')'
} ],
resolve: {
modules: [
@ -65,20 +71,3 @@ const commonConfig = {
}
};
module.exports = [
Object.assign({
target: 'electron-main',
entry: { main: './main.js' }
},
commonConfig),
Object.assign({
target: 'electron-renderer',
entry: { app: './app/index.js' },
plugins: [
new HtmlWebpackPlugin({
template: './app/index.html'
})
]
},
commonConfig)
];