|
6 | 6 |
|
7 | 7 | const path = require("path"); |
8 | 8 | const Tapable = require("tapable"); |
| 9 | +const util = require("util"); |
9 | 10 |
|
10 | 11 | const Compilation = require("./Compilation"); |
11 | 12 | const Stats = require("./Stats"); |
@@ -186,35 +187,30 @@ class Compiler extends Tapable { |
186 | 187 | loader: null, |
187 | 188 | context: null |
188 | 189 | }; |
189 | | - let deprecationReported = false; |
190 | 190 | this.parser = { |
191 | | - plugin: (hook, fn) => { |
192 | | - if(!deprecationReported && process.noDeprecation !== true) { |
193 | | - console.warn("webpack: Using compiler.parser is deprecated.\n" + |
194 | | - "Use compiler.plugin(\"compilation\", function(compilation, data) {\n data.normalModuleFactory.plugin(\"parser\", function(parser, options) { parser.plugin(/* ... */); });\n}); instead. " + |
195 | | - "It was called " + new Error().stack.split("\n")[2].trim() + "."); |
196 | | - deprecationReported = true; |
197 | | - } |
198 | | - this.plugin("compilation", (compilation, data) => { |
199 | | - data.normalModuleFactory.plugin("parser", parser => { |
200 | | - parser.plugin(hook, fn); |
| 191 | + plugin: util.deprecate( |
| 192 | + (hook, fn) => { |
| 193 | + this.plugin("compilation", (compilation, data) => { |
| 194 | + data.normalModuleFactory.plugin("parser", parser => { |
| 195 | + parser.plugin(hook, fn); |
| 196 | + }); |
201 | 197 | }); |
202 | | - }); |
203 | | - }, |
204 | | - apply: () => { |
205 | | - const args = arguments; |
206 | | - if(!deprecationReported && process.noDeprecation !== true) { |
207 | | - console.warn("webpack: Using compiler.parser is deprecated.\n" + |
208 | | - "Use compiler.plugin(\"compilation\", function(compilation, data) {\n data.normalModuleFactory.plugin(\"parser\", function(parser, options) { parser.apply(/* ... */); });\n}); instead. " + |
209 | | - "It was called " + new Error().stack.split("\n")[2].trim() + "."); |
210 | | - deprecationReported = true; |
211 | | - } |
212 | | - this.plugin("compilation", (compilation, data) => { |
213 | | - data.normalModuleFactory.plugin("parser", parser => { |
214 | | - parser.apply.apply(parser, args); |
| 198 | + }, |
| 199 | + "webpack: Using compiler.parser is deprecated.\n" + |
| 200 | + "Use compiler.plugin(\"compilation\", function(compilation, data) {\n data.normalModuleFactory.plugin(\"parser\", function(parser, options) { parser.plugin(/* ... */); });\n}); instead. " |
| 201 | + ), |
| 202 | + apply: util.deprecate( |
| 203 | + () => { |
| 204 | + const args = arguments; |
| 205 | + this.plugin("compilation", (compilation, data) => { |
| 206 | + data.normalModuleFactory.plugin("parser", parser => { |
| 207 | + parser.apply(parser, args); |
| 208 | + }); |
215 | 209 | }); |
216 | | - }); |
217 | | - } |
| 210 | + }, |
| 211 | + "webpack: Using compiler.parser is deprecated.\n" + |
| 212 | + "Use compiler.plugin(\"compilation\", function(compilation, data) {\n data.normalModuleFactory.plugin(\"parser\", function(parser, options) { parser.apply(/* ... */); });\n}); instead. " |
| 213 | + ) |
218 | 214 | }; |
219 | 215 |
|
220 | 216 | this.options = {}; |
|
0 commit comments