webpack/lib/dependencies/ImportPlugin.js

37 lines
1.2 KiB
JavaScript

/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var ImportDependency = require("./ImportDependency");
var ImportContextDependency = require("./ImportContextDependency");
var ImportParserPlugin = require("./ImportParserPlugin");
function ImportPlugin(options) {
this.options = options;
}
module.exports = ImportPlugin;
ImportPlugin.prototype.apply = function(compiler) {
var options = this.options;
compiler.plugin("compilation", function(compilation, params) {
var normalModuleFactory = params.normalModuleFactory;
var contextModuleFactory = params.contextModuleFactory;
compilation.dependencyFactories.set(ImportDependency, normalModuleFactory);
compilation.dependencyTemplates.set(ImportDependency, new ImportDependency.Template());
compilation.dependencyFactories.set(ImportContextDependency, contextModuleFactory);
compilation.dependencyTemplates.set(ImportContextDependency, new ImportContextDependency.Template());
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
if(typeof parserOptions.import !== "undefined" && !parserOptions.import)
return;
parser.apply(
new ImportParserPlugin(options)
);
});
});
};