From 0d3256d8212f8b273bd38c1eb37e63f8c7d3e4df Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Thu, 6 Jun 2019 21:18:56 +0800 Subject: [PATCH] build mp runtime #411 --- packages/uni-app-plus/dist/index.js | 34 ++++++++++++++++++++++----- packages/uni-app-plus/package.json | 2 +- packages/uni-mp-alipay/dist/index.js | 32 +++++++++++++++++++++---- packages/uni-mp-alipay/package.json | 2 +- packages/uni-mp-baidu/dist/index.js | 34 ++++++++++++++++++++++----- packages/uni-mp-baidu/package.json | 2 +- packages/uni-mp-toutiao/dist/index.js | 34 ++++++++++++++++++++++----- packages/uni-mp-toutiao/package.json | 2 +- packages/uni-mp-weixin/dist/index.js | 34 ++++++++++++++++++++++----- packages/uni-mp-weixin/package.json | 2 +- 10 files changed, 144 insertions(+), 34 deletions(-) diff --git a/packages/uni-app-plus/dist/index.js b/packages/uni-app-plus/dist/index.js index e93bc8cab..0895c6511 100644 --- a/packages/uni-app-plus/dist/index.js +++ b/packages/uni-app-plus/dist/index.js @@ -433,13 +433,35 @@ function initMocks (vm, mocks) { }); } -function initHooks (mpOptions, hooks) { +function hasHook (hook, vueOptions) { + if (!vueOptions) { + return true + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + vueOptions = vueOptions.extendOptions; + } + + if (isFn(vueOptions[hook])) { + return true + } + const mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(mixin => hasHook(hook, mixin)) + } +} + +function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - mpOptions[hook] = function (args) { - return this.$vm && this.$vm.__call_hook(hook, args) - }; + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args) + }; + } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1115,7 +1137,7 @@ function parseBasePage (vuePageOptions, { initRelation }); - initHooks(pageOptions.methods, hooks$2); + initHooks(pageOptions.methods, hooks$2, vuePageOptions); pageOptions.methods.onLoad = function (args) { this.$vm.$mp.query = args; // 兼容 mpvue diff --git a/packages/uni-app-plus/package.json b/packages/uni-app-plus/package.json index d3c2bd801..d7ad897db 100644 --- a/packages/uni-app-plus/package.json +++ b/packages/uni-app-plus/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-app-plus", - "version": "0.0.241", + "version": "0.0.242", "description": "uni-app app-plus", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-alipay/dist/index.js b/packages/uni-mp-alipay/dist/index.js index 31a5183b9..71b985dbf 100644 --- a/packages/uni-mp-alipay/dist/index.js +++ b/packages/uni-mp-alipay/dist/index.js @@ -752,13 +752,35 @@ function initMocks (vm, mocks) { }); } -function initHooks (mpOptions, hooks) { +function hasHook (hook, vueOptions) { + if (!vueOptions) { + return true + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + vueOptions = vueOptions.extendOptions; + } + + if (isFn(vueOptions[hook])) { + return true + } + const mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(mixin => hasHook(hook, mixin)) + } +} + +function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - mpOptions[hook] = function (args) { - return this.$vm && this.$vm.__call_hook(hook, args) - }; + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args) + }; + } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; diff --git a/packages/uni-mp-alipay/package.json b/packages/uni-mp-alipay/package.json index 13d525702..9600d111e 100644 --- a/packages/uni-mp-alipay/package.json +++ b/packages/uni-mp-alipay/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-alipay", - "version": "0.0.814", + "version": "0.0.815", "description": "uni-app mp-alipay", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-baidu/dist/index.js b/packages/uni-mp-baidu/dist/index.js index 3118ce5ea..a630f4de3 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -533,13 +533,35 @@ function initMocks (vm, mocks) { }); } -function initHooks (mpOptions, hooks) { +function hasHook (hook, vueOptions) { + if (!vueOptions) { + return true + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + vueOptions = vueOptions.extendOptions; + } + + if (isFn(vueOptions[hook])) { + return true + } + const mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(mixin => hasHook(hook, mixin)) + } +} + +function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - mpOptions[hook] = function (args) { - return this.$vm && this.$vm.__call_hook(hook, args) - }; + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args) + }; + } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1245,7 +1267,7 @@ function parseBasePage (vuePageOptions, { initRelation }); - initHooks(pageOptions.methods, hooks$1); + initHooks(pageOptions.methods, hooks$1, vuePageOptions); pageOptions.methods.onLoad = function (args) { this.$vm.$mp.query = args; // 兼容 mpvue diff --git a/packages/uni-mp-baidu/package.json b/packages/uni-mp-baidu/package.json index cb5569e63..d192dbfba 100644 --- a/packages/uni-mp-baidu/package.json +++ b/packages/uni-mp-baidu/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-baidu", - "version": "0.0.841", + "version": "0.0.842", "description": "uni-app mp-baidu", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-toutiao/dist/index.js b/packages/uni-mp-toutiao/dist/index.js index 48c4b96fa..cdc7696c1 100644 --- a/packages/uni-mp-toutiao/dist/index.js +++ b/packages/uni-mp-toutiao/dist/index.js @@ -578,13 +578,35 @@ function initMocks (vm, mocks) { }); } -function initHooks (mpOptions, hooks) { +function hasHook (hook, vueOptions) { + if (!vueOptions) { + return true + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + vueOptions = vueOptions.extendOptions; + } + + if (isFn(vueOptions[hook])) { + return true + } + const mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(mixin => hasHook(hook, mixin)) + } +} + +function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - mpOptions[hook] = function (args) { - return this.$vm && this.$vm.__call_hook(hook, args) - }; + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args) + }; + } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1327,7 +1349,7 @@ function parseBasePage (vuePageOptions, { initRelation }); - initHooks(pageOptions.methods, hooks$1); + initHooks(pageOptions.methods, hooks$1, vuePageOptions); pageOptions.methods.onLoad = function (args) { this.$vm.$mp.query = args; // 兼容 mpvue diff --git a/packages/uni-mp-toutiao/package.json b/packages/uni-mp-toutiao/package.json index 33c981a40..1c2bbef67 100644 --- a/packages/uni-mp-toutiao/package.json +++ b/packages/uni-mp-toutiao/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-toutiao", - "version": "0.0.338", + "version": "0.0.339", "description": "uni-app mp-toutiao", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-weixin/dist/index.js b/packages/uni-mp-weixin/dist/index.js index dd939230f..1d5da1d32 100644 --- a/packages/uni-mp-weixin/dist/index.js +++ b/packages/uni-mp-weixin/dist/index.js @@ -435,13 +435,35 @@ function initMocks (vm, mocks) { }); } -function initHooks (mpOptions, hooks) { +function hasHook (hook, vueOptions) { + if (!vueOptions) { + return true + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + vueOptions = vueOptions.extendOptions; + } + + if (isFn(vueOptions[hook])) { + return true + } + const mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(mixin => hasHook(hook, mixin)) + } +} + +function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - mpOptions[hook] = function (args) { - return this.$vm && this.$vm.__call_hook(hook, args) - }; + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args) + }; + } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1101,7 +1123,7 @@ function parseBasePage (vuePageOptions, { initRelation }); - initHooks(pageOptions.methods, hooks$1); + initHooks(pageOptions.methods, hooks$1, vuePageOptions); pageOptions.methods.onLoad = function (args) { this.$vm.$mp.query = args; // 兼容 mpvue diff --git a/packages/uni-mp-weixin/package.json b/packages/uni-mp-weixin/package.json index 1f4a58732..d2f66ba44 100644 --- a/packages/uni-mp-weixin/package.json +++ b/packages/uni-mp-weixin/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-weixin", - "version": "0.0.960", + "version": "0.0.961", "description": "uni-app mp-weixin", "main": "dist/index.js", "scripts": { -- GitLab