|
|
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- "use strict";
-
- const NodeWatchFileSystem = require("./NodeWatchFileSystem");
- const NodeOutputFileSystem = require("./NodeOutputFileSystem");
- const NodeJsInputFileSystem = require("enhanced-resolve/lib/NodeJsInputFileSystem");
- const CachedInputFileSystem = require("enhanced-resolve/lib/CachedInputFileSystem");
- const createConsoleLogger = require("../logging/createConsoleLogger");
- const nodeConsole = require("./nodeConsole");
-
- class NodeEnvironmentPlugin {
- constructor(options) {
- this.options = options || {};
- }
-
- apply(compiler) {
- compiler.infrastructureLogger = createConsoleLogger(
- Object.assign(
- {
- level: "info",
- debug: false,
- console: nodeConsole
- },
- this.options.infrastructureLogging
- )
- );
- compiler.inputFileSystem = new CachedInputFileSystem(
- new NodeJsInputFileSystem(),
- 60000
- );
- const inputFileSystem = compiler.inputFileSystem;
- compiler.outputFileSystem = new NodeOutputFileSystem();
- compiler.watchFileSystem = new NodeWatchFileSystem(
- compiler.inputFileSystem
- );
- compiler.hooks.beforeRun.tap("NodeEnvironmentPlugin", compiler => {
- if (compiler.inputFileSystem === inputFileSystem) inputFileSystem.purge();
- });
- }
- }
- module.exports = NodeEnvironmentPlugin;
|