mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
						|
	Author Tobias Koppers @sokra
 | 
						|
*/
 | 
						|
var Compiler = require("./Compiler");
 | 
						|
var NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin");
 | 
						|
var WebpackOptionsApply = require("./WebpackOptionsApply");
 | 
						|
var WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
 | 
						|
 | 
						|
function webpack(options, callback) {
 | 
						|
	new WebpackOptionsDefaulter().process(options);
 | 
						|
 | 
						|
	var compiler = new Compiler();
 | 
						|
	compiler.options = options;
 | 
						|
	compiler.options = new WebpackOptionsApply().process(options, compiler);
 | 
						|
	new NodeEnvironmentPlugin().apply(compiler);
 | 
						|
	if(callback) {
 | 
						|
		if(options.watch) {
 | 
						|
			return compiler.watch(options.watchDelay, callback);
 | 
						|
		} else {
 | 
						|
			compiler.run(callback);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return compiler;
 | 
						|
}
 | 
						|
exports = module.exports = webpack;
 | 
						|
 | 
						|
webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter;
 | 
						|
webpack.WebpackOptionsApply = WebpackOptionsApply;
 | 
						|
webpack.Compiler = Compiler;
 | 
						|
webpack.NodeEnvironmentPlugin = NodeEnvironmentPlugin;
 | 
						|
 | 
						|
function exportPlugins(exports, path, plugins) {
 | 
						|
	plugins.forEach(function(name) {
 | 
						|
		Object.defineProperty(exports, name, {
 | 
						|
			configurable: false,
 | 
						|
			enumerable: true,
 | 
						|
			get: function() {
 | 
						|
				return require(path + "/" + name);
 | 
						|
			}
 | 
						|
		});
 | 
						|
	});
 | 
						|
}
 | 
						|
 | 
						|
exportPlugins(exports, ".", [
 | 
						|
	"DefinePlugin",
 | 
						|
	"NormalModuleReplacementPlugin",
 | 
						|
	"ContextReplacementPlugin",
 | 
						|
	"IgnorePlugin",
 | 
						|
	"BannerPlugin",
 | 
						|
	"PrefetchPlugin",
 | 
						|
	"ProvidePlugin",
 | 
						|
	"HotModuleReplacementPlugin",
 | 
						|
	"ResolverPlugin",
 | 
						|
]);
 | 
						|
exportPlugins(exports.optimize = {}, "./optimize", [
 | 
						|
	"AggressiveMergingPlugin",
 | 
						|
	"CommonsChunkPlugin",
 | 
						|
	"DedupePlugin",
 | 
						|
	"LimitChunkCountPlugin",
 | 
						|
	"MinChunkSizePlugin",
 | 
						|
	"OccurenceOrderPlugin",
 | 
						|
	"OccurrenceOrderPlugin",
 | 
						|
	"UglifyJsPlugin"
 | 
						|
]);
 | 
						|
exportPlugins(exports.dependencies = {}, "./dependencies", [
 | 
						|
	"LabeledModulesPlugin"
 | 
						|
]);
 |