|
7 | 7 | // return typeof global !== 'undefined' ? global : this;
|
8 | 8 | // })();
|
9 | 9 |
|
| 10 | +const banner = ` |
| 11 | + if (!global && (typeof my !== 'undefined')) { |
| 12 | + var globalModule = require('global'); |
| 13 | + var Component = globalModule.AFAppX.WorkerComponent; |
| 14 | + global = globalModule.AFAppX.$global || {}; |
| 15 | + } |
| 16 | +`; |
| 17 | + |
10 | 18 | function mpvueVendorPlugin() {
|
11 | 19 | }
|
12 | 20 |
|
13 |
| -mpvueVendorPlugin.prototype.apply = function (compiler) { |
14 |
| - compiler.plugin('emit', (compilation, callback) => { |
15 |
| - const fileName = 'common/vendor.js'; |
16 |
| - const asset = compilation.assets[fileName]; |
17 |
| - let fileContent = asset.source(); |
18 |
| - |
19 |
| - compilation.assets[fileName] = { |
20 |
| - source: () => { |
21 |
| - let from = /g\s=\s\(function\(\)\s\{\r?\n?\s+return\sthis;\r?\n?\s*\}\)\(\)\;/; |
22 |
| - let to = `g = (function() { return typeof global !== 'undefined' ? global : this; })();` |
23 |
| - fileContent = fileContent.replace(from, to) |
24 |
| - return fileContent; |
25 |
| - }, |
26 |
| - size: () => { |
27 |
| - return Buffer.byteLength(fileContent, 'utf8'); |
28 |
| - } |
29 |
| - }; |
| 21 | +mpvueVendorPlugin.prototype.apply = function(compiler) { |
| 22 | + compiler.plugin("emit", (compilation, callback) => { |
| 23 | + let regExp = /\.js$/; |
| 24 | + let filesName = Object.keys(compilation.assets).filter(name => |
| 25 | + name.match(regExp) |
| 26 | + ); |
| 27 | + filesName.forEach(name => { |
| 28 | + let asset = compilation.assets[name]; |
| 29 | + let fileContent = asset.source(); |
| 30 | + compilation.assets[name] = { |
| 31 | + source: () => { |
| 32 | + return banner + "\n" + fileContent; |
| 33 | + }, |
| 34 | + size: () => { |
| 35 | + return Buffer.byteLength(fileContent, "utf8"); |
| 36 | + } |
| 37 | + }; |
| 38 | + }); |
30 | 39 | callback();
|
31 | 40 | });
|
32 | 41 | };
|
|
0 commit comments