diff options
Diffstat (limited to 'node_modules/webpack/lib/node/NodeEnvironmentPlugin.js')
| -rw-r--r-- | node_modules/webpack/lib/node/NodeEnvironmentPlugin.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/node/NodeEnvironmentPlugin.js b/node_modules/webpack/lib/node/NodeEnvironmentPlugin.js new file mode 100644 index 00000000..7d53eb1d --- /dev/null +++ b/node_modules/webpack/lib/node/NodeEnvironmentPlugin.js @@ -0,0 +1,60 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +"use strict"; + +const CachedInputFileSystem = require("enhanced-resolve/lib/CachedInputFileSystem"); +const fs = require("graceful-fs"); +const createConsoleLogger = require("../logging/createConsoleLogger"); +const NodeWatchFileSystem = require("./NodeWatchFileSystem"); +const nodeConsole = require("./nodeConsole"); + +/** @typedef {import("../../declarations/WebpackOptions").InfrastructureLogging} InfrastructureLogging */ +/** @typedef {import("../Compiler")} Compiler */ + +class NodeEnvironmentPlugin { + /** + * @param {Object} options options + * @param {InfrastructureLogging} options.infrastructureLogging infrastructure logging options + */ + constructor(options) { + this.options = options; + } + + /** + * Apply the plugin + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ + apply(compiler) { + const { infrastructureLogging } = this.options; + compiler.infrastructureLogger = createConsoleLogger({ + level: infrastructureLogging.level || "info", + debug: infrastructureLogging.debug || false, + console: + infrastructureLogging.console || + nodeConsole({ + colors: infrastructureLogging.colors, + appendOnly: infrastructureLogging.appendOnly, + stream: infrastructureLogging.stream + }) + }); + compiler.inputFileSystem = new CachedInputFileSystem(fs, 60000); + const inputFileSystem = compiler.inputFileSystem; + compiler.outputFileSystem = fs; + compiler.intermediateFileSystem = fs; + compiler.watchFileSystem = new NodeWatchFileSystem( + compiler.inputFileSystem + ); + compiler.hooks.beforeRun.tap("NodeEnvironmentPlugin", compiler => { + if (compiler.inputFileSystem === inputFileSystem) { + compiler.fsStartTime = Date.now(); + inputFileSystem.purge(); + } + }); + } +} + +module.exports = NodeEnvironmentPlugin; |
