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"
 | |
| ]);
 |