1 | var installer = require("./installer");
|
2 | var loaderUtils = require("loader-utils");
|
3 | var path = require("path");
|
4 | var parser = require("./parser");
|
5 | var util = require("util");
|
6 |
|
7 | module.exports = function loader(source, map) {
|
8 | if (this.cacheable) {
|
9 | this.cacheable();
|
10 | }
|
11 |
|
12 | var context = this.options.context || process.cwd();
|
13 | var resolve = this.options.resolve;
|
14 |
|
15 | var dependencies = parser.parse(source);
|
16 |
|
17 | var modulePaths = [].concat(
|
18 | resolve.root || [],
|
19 | resolve.modulesDirectories || []
|
20 | ).map(function(dir) {
|
21 | return path.resolve(context, dir);
|
22 | });
|
23 |
|
24 | var missing = installer.check(dependencies, modulePaths);
|
25 | var query = loaderUtils.parseQuery(this.query);
|
26 |
|
27 | installer.install(missing, query.cli);
|
28 |
|
29 | this.callback(null, source, map);
|
30 | };
|