fixed big performance bug in watch mode

This commit is contained in:
Tobias Koppers 2012-07-10 19:32:17 +02:00
parent e60514aac1
commit 9000cad388
1 changed files with 45 additions and 45 deletions

View File

@ -75,6 +75,51 @@ module.exports = function(context, moduleName, options, callback) {
options = {};
}
// Defaults
if(!options.outputJsonpFunction)
options.outputJsonpFunction = "webpackJsonp" + (options.libary || "");
options.scriptSrcPrefix = options.scriptSrcPrefix || ""; // DEPRECATED
options.publicPrefix = options.publicPrefix || options.scriptSrcPrefix
if(options.output) {
if(!options.outputDirectory) {
options.outputDirectory = path.dirname(options.output);
options.output = path.basename(options.output);
}
if(!options.outputPostfix) {
options.outputPostfix = "." + options.output;
}
} // else DEPRECATED
options.parse = options.parse || {};
options.parse.overwrites = options.parse.overwrites || {};
options.parse.overwrites.process = options.parse.overwrites.process || ("__webpack_process");
options.parse.overwrites.module = options.parse.overwrites.module || ("__webpack_module+(module)");
options.parse.overwrites.console = options.parse.overwrites.console || ("__webpack_console");
options.parse.overwrites.global = options.parse.overwrites.global || ("__webpack_global");
options.parse.overwrites.Buffer = options.parse.overwrites.Buffer || ("buffer+.Buffer");
options.parse.overwrites["__dirname"] = options.parse.overwrites["__dirname"] || ("__webpack_dirname");
options.parse.overwrites["__filename"] = options.parse.overwrites["__filename"] || ("__webpack_filename");
options.resolve = options.resolve || {};
options.resolve.paths = options.resolve.paths || [];
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin", "web_modules"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin", "node_modules"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "node_modules"));
options.resolve.alias = options.resolve.alias || {};
options.resolve.loaders = options.resolve.loaders || [];
options.resolve.loaders.push({test: /\.coffee$/, loader: "coffee"});
options.resolve.loaders.push({test: /\.json$/, loader: "json"});
options.resolve.loaders.push({test: /\.jade$/, loader: "jade"});
options.resolve.loaders.push({test: /\.css$/, loader: "style!css"});
options.resolve.loaders.push({test: /\.less$/, loader: "style!css!val/cacheable!less"});
options.loader = options.loader || {};
options.loader.emitFile = options.loader.emitFile || function(filename, content) {
options.internal.fileWrites.push([path.join(options.outputDirectory, filename), content]);
}
// Create a options.events as EventEmitter
if(!options.events) options.events = new (require("events").EventEmitter)();
@ -156,51 +201,6 @@ module.exports = function(context, moduleName, options, callback) {
function webpack(context, moduleName, options, callback) {
var startTime = new Date();
// Defaults
if(!options.outputJsonpFunction)
options.outputJsonpFunction = "webpackJsonp" + (options.libary || "");
options.scriptSrcPrefix = options.scriptSrcPrefix || ""; // DEPRECATED
options.publicPrefix = options.publicPrefix || options.scriptSrcPrefix
if(options.output) {
if(!options.outputDirectory) {
options.outputDirectory = path.dirname(options.output);
options.output = path.basename(options.output);
}
if(!options.outputPostfix) {
options.outputPostfix = "." + options.output;
}
} // else DEPRECATED
options.parse = options.parse || {};
options.parse.overwrites = options.parse.overwrites || {};
options.parse.overwrites.process = options.parse.overwrites.process || ("__webpack_process");
options.parse.overwrites.module = options.parse.overwrites.module || ("__webpack_module+(module)");
options.parse.overwrites.console = options.parse.overwrites.console || ("__webpack_console");
options.parse.overwrites.global = options.parse.overwrites.global || ("__webpack_global");
options.parse.overwrites.Buffer = options.parse.overwrites.Buffer || ("buffer+.Buffer");
options.parse.overwrites["__dirname"] = options.parse.overwrites["__dirname"] || ("__webpack_dirname");
options.parse.overwrites["__filename"] = options.parse.overwrites["__filename"] || ("__webpack_filename");
options.resolve = options.resolve || {};
options.resolve.paths = options.resolve.paths || [];
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin", "web_modules"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "buildin", "node_modules"));
options.resolve.paths.push(path.join(path.dirname(__dirname), "node_modules"));
options.resolve.alias = options.resolve.alias || {};
options.resolve.loaders = options.resolve.loaders || [];
options.resolve.loaders.push({test: /\.coffee$/, loader: "coffee"});
options.resolve.loaders.push({test: /\.json$/, loader: "json"});
options.resolve.loaders.push({test: /\.jade$/, loader: "jade"});
options.resolve.loaders.push({test: /\.css$/, loader: "style!css"});
options.resolve.loaders.push({test: /\.less$/, loader: "style!css!val/cacheable!less"});
options.loader = options.loader || {};
options.loader.emitFile = options.loader.emitFile || function(filename, content) {
options.internal.fileWrites.push([path.join(options.outputDirectory, filename), content]);
}
options.internal = {};
// all writes to files