1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| /*
| 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;
|
|