From bc4f04a4855d8e8cef8f068a4cc8aa9fe7165bbf Mon Sep 17 00:00:00 2001 From: hpneo Date: Fri, 12 Feb 2021 13:46:39 -0500 Subject: [PATCH] * Fix Babel configuration for Electron main process to support ES modules. * Fix filter for webpack entries for renderer process. --- Gemfile.lock | 2 +- .../config/webpack/electron/renderer/development.js | 6 +++++- .../config/webpack/electron/renderer/production.js | 6 +++++- lib/install/lib/javascript/babel.js | 8 +++++++- lib/webpacker/electron/version.rb | 2 +- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 876262f..abdfee4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - webpacker-electron (0.1.2) + webpacker-electron (0.1.3) rails (>= 6.0.0) webpacker diff --git a/lib/install/config/webpack/electron/renderer/development.js b/lib/install/config/webpack/electron/renderer/development.js index 172daf8..051b89f 100644 --- a/lib/install/config/webpack/electron/renderer/development.js +++ b/lib/install/config/webpack/electron/renderer/development.js @@ -12,7 +12,11 @@ const HtmlWebpackPlugin = require("html-webpack-plugin"); const { config } = require("@rails/webpacker"); const environment = require("../../environment"); -environment.entry.delete("application"); +Object.keys(environment.entry) + .filter((key) => !key.match(/^electron/)) + .forEach((entry) => { + environment.entry.delete(entry); + }); const electronConfig = { target: "electron-renderer", diff --git a/lib/install/config/webpack/electron/renderer/production.js b/lib/install/config/webpack/electron/renderer/production.js index e59228e..01fd88d 100644 --- a/lib/install/config/webpack/electron/renderer/production.js +++ b/lib/install/config/webpack/electron/renderer/production.js @@ -6,7 +6,11 @@ const HtmlWebpackPlugin = require("html-webpack-plugin"); const { config } = require("@rails/webpacker"); const environment = require("../../environment"); -environment.entry.delete("application"); +Object.keys(environment.entry) + .filter((key) => !key.match(/^electron/)) + .forEach((entry) => { + environment.entry.delete(entry); + }); const electronConfig = { target: "electron-renderer", diff --git a/lib/install/lib/javascript/babel.js b/lib/install/lib/javascript/babel.js index d86cf96..0c31043 100644 --- a/lib/install/lib/javascript/babel.js +++ b/lib/install/lib/javascript/babel.js @@ -1,11 +1,17 @@ const path = require("path"); +const { config } = require("@rails/webpacker"); require("@babel/register")({ extensions: [".es6", ".es", ".jsx", ".js", ".mjs", ".ts", ".tsx"], cwd: path.join(__dirname, "../.."), overrides: [ { - test: "./src/packs/electron", + test: path.resolve( + "./", + config.source_path, + config.source_entry_path, + "electron", + ), presets: [ [ "@babel/preset-env", diff --git a/lib/webpacker/electron/version.rb b/lib/webpacker/electron/version.rb index 6110c5c..5b0dc3b 100644 --- a/lib/webpacker/electron/version.rb +++ b/lib/webpacker/electron/version.rb @@ -1,5 +1,5 @@ module Webpacker module Electron - VERSION = '0.1.2' + VERSION = '0.1.3' end end