You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.3 KiB
68 lines
1.3 KiB
/* |
|
MIT License http://www.opensource.org/licenses/mit-license.php |
|
Author Tobias Koppers @sokra |
|
*/ |
|
|
|
"use strict"; |
|
|
|
const ExternalsPlugin = require("../ExternalsPlugin"); |
|
|
|
/** @typedef {import("../Compiler")} Compiler */ |
|
|
|
class ElectronTargetPlugin { |
|
/** |
|
* @param {"main" | "preload" | "renderer"=} context in main, preload or renderer context? |
|
*/ |
|
constructor(context) { |
|
this._context = context; |
|
} |
|
/** |
|
* Apply the plugin |
|
* @param {Compiler} compiler the compiler instance |
|
* @returns {void} |
|
*/ |
|
apply(compiler) { |
|
new ExternalsPlugin("node-commonjs", [ |
|
"clipboard", |
|
"crash-reporter", |
|
"electron", |
|
"ipc", |
|
"native-image", |
|
"original-fs", |
|
"screen", |
|
"shell" |
|
]).apply(compiler); |
|
switch (this._context) { |
|
case "main": |
|
new ExternalsPlugin("node-commonjs", [ |
|
"app", |
|
"auto-updater", |
|
"browser-window", |
|
"content-tracing", |
|
"dialog", |
|
"global-shortcut", |
|
"ipc-main", |
|
"menu", |
|
"menu-item", |
|
"power-monitor", |
|
"power-save-blocker", |
|
"protocol", |
|
"session", |
|
"tray", |
|
"web-contents" |
|
]).apply(compiler); |
|
break; |
|
case "preload": |
|
case "renderer": |
|
new ExternalsPlugin("node-commonjs", [ |
|
"desktop-capturer", |
|
"ipc-renderer", |
|
"remote", |
|
"web-frame" |
|
]).apply(compiler); |
|
break; |
|
} |
|
} |
|
} |
|
|
|
module.exports = ElectronTargetPlugin;
|
|
|