Vue模块组件检测Vue.js版本?

Posted

技术标签:

【中文标题】Vue模块组件检测Vue.js版本?【英文标题】:Vue module component detect Vue.js version? 【发布时间】:2021-03-22 21:30:03 【问题描述】:

我想将一个组件发布到 NPM,它具有简单的 v-model 功能。

因此,如果它可以在 vuejs 2/3 上互换运行,那就太理想了。

我可以通过将组件设置为发出inputupdate:modelValue 来强制两者的行为,但更优雅的解决方案是验证用户的实现并相应地发出。运行时工具链中的某处是否有可用的“版本”属性?或者,优雅地检测客户端构建版本的(或其中一种)最佳方法是什么?

【问题讨论】:

【参考方案1】:

Vue 3:

import * as Vue from 'vue';

console.log(Vue.version) // "3.0.0"

Vue 2:

import Vue from 'vue';

console.log(Vue.version) // "2.6.12"

要在两者之间做出有效的决定,您可以这样做:

import * as Vue from 'vue';

// Make copy to prevent import warning in Vue 2
const vueObject =  ...Vue ;
let version;

if (vueObject.default) version = 2;
if (vueObject.version && vueObject.version[0] === '3') 
    version = 3;

【讨论】:

【参考方案2】:

与:Vue.version

import Vue from 'vue'
import App from './App.vue'

console.log(Vue.version);

new Vue(
  render: h => h(App),
).$mount('#app')

参考:https://www.positronx.io/how-to-check-current-vue-js-application-version/

【讨论】:

以上是关于Vue模块组件检测Vue.js版本?的主要内容,如果未能解决你的问题,请参考以下文章

Vue JS NPM 模块导入组件

Vue.js 组件编码规范

如何发布带有 Vuex 模块的 Vue.js NPM 包?

Vue.js学习笔记

Vue.js - 将自定义指令导入为 ES6 模块

Vue.js 组件编码规范