1 |
|
2 |
|
3 |
|
4 |
|
5 | "use strict";
|
6 |
|
7 | const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
|
8 |
|
9 | class SourceMapDevToolModuleOptionsPlugin {
|
10 | constructor(options) {
|
11 | this.options = options;
|
12 | }
|
13 |
|
14 | apply(compilation) {
|
15 | const options = this.options;
|
16 | if (options.module !== false) {
|
17 | compilation.hooks.buildModule.tap(
|
18 | "SourceMapDevToolModuleOptionsPlugin",
|
19 | module => {
|
20 | module.useSourceMap = true;
|
21 | }
|
22 | );
|
23 | }
|
24 | if (options.lineToLine === true) {
|
25 | compilation.hooks.buildModule.tap(
|
26 | "SourceMapDevToolModuleOptionsPlugin",
|
27 | module => {
|
28 | module.lineToLine = true;
|
29 | }
|
30 | );
|
31 | } else if (options.lineToLine) {
|
32 | compilation.hooks.buildModule.tap(
|
33 | "SourceMapDevToolModuleOptionsPlugin",
|
34 | module => {
|
35 | if (!module.resource) return;
|
36 | let resourcePath = module.resource;
|
37 | const idx = resourcePath.indexOf("?");
|
38 | if (idx >= 0) resourcePath = resourcePath.substr(0, idx);
|
39 | module.lineToLine = ModuleFilenameHelpers.matchObject(
|
40 | options.lineToLine,
|
41 | resourcePath
|
42 | );
|
43 | }
|
44 | );
|
45 | }
|
46 | }
|
47 | }
|
48 |
|
49 | module.exports = SourceMapDevToolModuleOptionsPlugin;
|