From b6b8281ca2925cb271e96d47416a59a8e15737a6 Mon Sep 17 00:00:00 2001 From: Jack Ellis Date: Wed, 28 Mar 2018 08:58:23 +0100 Subject: [PATCH] fixed option merge strategies --- changelog.md | 3 +++ package-lock.json | 2 +- package.json | 2 +- src/install.js | 10 +++++++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index f682fbd..556ade9 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,6 @@ +## 2.0.1 +- Fixed an issue where doing `Vue.extend().use(vueInject)` meant vue inject could not find `optionMergeStrategies` + ## 2.0.0 - Injecting components/mixins/directives is now optional - There is now a default merging strategy for when using mixins with dependencies diff --git a/package-lock.json b/package-lock.json index ebb8a30..231767b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vue-inject", - "version": "1.0.1", + "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2749a41..ad5884b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-inject", - "version": "2.0.0", + "version": "2.0.1", "description": "Dependency Injection for Vue", "main": "src/index.js", "scripts": { diff --git a/src/install.js b/src/install.js index 33ab2a5..bc26697 100644 --- a/src/install.js +++ b/src/install.js @@ -49,7 +49,15 @@ module.exports = function (Vue, options) { }); } - Vue.config.optionMergeStrategies.dependencies = Vue.config.optionMergeStrategies.depnedencies || function (toVal, fromVal) { + function getOptionMergeStrategies(Vue) { + while (Vue && !Vue.config) { + Vue = Vue.super; + } + return (Vue && Vue.config && Vue.config.optionMergeStrategies) || {}; + } + + var mergeStrategies = getOptionMergeStrategies(Vue); + mergeStrategies.dependencies = mergeStrategies.depnedencies || function (toVal, fromVal) { if (!toVal) { return fromVal; }