将 VeeValidate 与 Vue 一起使用时如何修复“TypeError: plugin is undefined”错误

Imp*_*nda 4 vue.js vuejs2 vee-validate

当我添加:

Vue.use(VeeValidate);

我的 Vue 页面显示空白并显示控制台错误:

TypeError: plugin is undefined

我发现以下有同样的错误:

Vue 插件 vee-validate 安装不正确

但我没有在我的 .vue 文档中的任何地方使用 => 语法。

vee 验证 3.0.3,Vue 2.6.10

完整的 main.js 文件:

import Vue from 'vue'
import VeeValidate from 'vee-validate';
import App from './App.vue'

Vue.config.productionTip = false
Vue.use(VeeValidate);

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

Run Code Online (Sandbox Code Playgroud)

在我的 App.vue 文件中,我确实将 ValidationProvider 作为组件包含在内:

<script>
import CriteriaDataModel from './data-model/criteria-data-model.js';
import UserDataModel from './data-model/user-data-model.js';
import { ValidationProvider } from 'vee-validate';

export default {
  name: 'app',
  data: function() {
    return {
      criteriaModel: CriteriaDataModel,
      completeMessage: null,
      form: {
        user: UserDataModel
      }
    };
  },
  components: {
    ValidationProvider
  }
};
</script>

Run Code Online (Sandbox Code Playgroud)

我还尝试将我的 Vue 初始化更改为此而没有帮助:

new Vue({
  render: function (h) { return h(App) },
}).$mount('#app')
Run Code Online (Sandbox Code Playgroud)

我观察到 VeeValidate 在 node_module 中有很多“=>”语法的用法(在另一个堆栈溢出中引用为问题),但由于目的是将它用于 Vue,我怀疑这是否是问题所在。

Imp*_*nda 5

我想通了。vee-validate 的默认导出似乎为空。在我将导入更改为:

import * as VeeValidate from 'vee-validate';
Run Code Online (Sandbox Code Playgroud)