From f49ca39045a94c0697d96035588ed78fe9e390dc Mon Sep 17 00:00:00 2001 From: Dewyzee Date: Fri, 25 Jan 2019 14:27:14 +0800 Subject: [PATCH 1/2] support alipay mini-program --- index.js | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/index.js b/index.js index f99d6d7..908077f 100644 --- a/index.js +++ b/index.js @@ -7,28 +7,38 @@ // return typeof global !== 'undefined' ? global : this; // })(); +const banner = ` + if (!global && (typeof my !== 'undefined')) { + var globalModule = require('global'); + var Component = globalModule.AFAppX.WorkerComponent; + global = globalModule.AFAppX.$global || {}; + } +`; + function mpvueVendorPlugin() { } -mpvueVendorPlugin.prototype.apply = function (compiler) { - compiler.plugin('emit', (compilation, callback) => { - const fileName = 'common/vendor.js'; - const asset = compilation.assets[fileName]; - let fileContent = asset.source(); - - compilation.assets[fileName] = { - source: () => { - let from = /g\s=\s\(function\(\)\s\{\r?\n?\s+return\sthis;\r?\n?\s*\}\)\(\)\;/; - let to = `g = (function() { return typeof global !== 'undefined' ? global : this; })();` - fileContent = fileContent.replace(from, to) - return fileContent; - }, - size: () => { - return Buffer.byteLength(fileContent, 'utf8'); - } - }; +mpvueVendorPlugin.prototype.apply = function(compiler) { + compiler.plugin("emit", (compilation, callback) => { + let regExp = /\.js$/; + let filesName = Object.keys(compilation.assets).filter(name => + name.match(regExp) + ); + filesName.forEach(name => { + let asset = compilation.assets[name]; + let fileContent = asset.source(); + compilation.assets[name] = { + source: () => { + return banner + "\n" + fileContent; + }, + size: () => { + return Buffer.byteLength(fileContent, "utf8"); + } + }; + }); callback(); }); }; module.exports = mpvueVendorPlugin; + From 5bf851dbee86ba4a3a2a1b8d187f5663ec8df5d0 Mon Sep 17 00:00:00 2001 From: Dewyzee Date: Fri, 25 Jan 2019 14:44:48 +0800 Subject: [PATCH 2/2] support alipay mini program --- index.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 908077f..e422124 100644 --- a/index.js +++ b/index.js @@ -20,8 +20,8 @@ function mpvueVendorPlugin() { mpvueVendorPlugin.prototype.apply = function(compiler) { compiler.plugin("emit", (compilation, callback) => { - let regExp = /\.js$/; - let filesName = Object.keys(compilation.assets).filter(name => + const regExp = /\.js$/; + const filesName = Object.keys(compilation.assets).filter(name => name.match(regExp) ); filesName.forEach(name => { @@ -38,6 +38,26 @@ mpvueVendorPlugin.prototype.apply = function(compiler) { }); callback(); }); + compiler.plugin('compilation', (compilation) => { + compilation.plugin('additional-chunk-assets', () => { + const fileName = 'common/vendor.js'; + const asset = compilation.assets[fileName]; + if (asset) { + let fileContent = asset.source(); + compilation.assets[fileName] = { + source: () => { + let from = /g\s=\s\(function\(\)\s\{\r?\n?\s+return\sthis;\r?\n?\s*\}\)\(\)\;/; + let to = `g = (function() { return typeof global !== 'undefined' ? global : this; })();` + fileContent = fileContent.replace(from, to) + return fileContent; + }, + size: () => { + return Buffer.byteLength(fileContent, 'utf8'); + } + }; + } + }); + }); }; module.exports = mpvueVendorPlugin;