mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	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;
 |