在 Vue 中添加具有定义的 GlobalErrorhandler 的插件

Add Plugin with defined GlobalErrorhandler in Vue

我编写并添加了一个 globalerrorhandler (Vue.config.errorHandler, window.onerror, ...)

我关注了vue网站上的《在vue中编写插件》

但我收到以下错误,我不知道为什么: 'MyPlugin' 未定义

我在我的项目中创建了一个 pluginFolder。在此文件夹中,我添加了另一个文件夹“GlobalErrorHandler”。在此文件夹中,我添加了“MyPlugin.js”。

App.vue:

import MyPlugin from './plugins/GlobalErrorHandler'
Vue.use(MyPlugin);

MyPlugin.js中的代码:

MyPlugin.install = function (Vue){
    Vue.config.errorHandler = function(err, info) {
      
        const toSend = {
          "error": err,
          "info": info
        }
      
        const jsonString = JSON.stringify(toSend);
        const xhr = new XMLHttpRequest();
              
              xhr.open("POST", "http://localhost:8090/api/auth/event");
              xhr.setRequestHeader("Content-Type", "application/json");
              xhr.send(jsonString);
              console.log(jsonString);
        
        };

}

MyPlugin 对象必须先存在,然后才能添加 install 属性:

const MyPlugin = {};  // Create the object

MyPlugin.js需要导出对象,否则无法导入:

export default MyPlugin;  // export for importing

放在一起:

const MyPlugin = {};
MyPlugin.install = function (Vue){
  Vue.config.errorHandler = function(err, info) {

    const toSend = {
      "error": err,
      "info": info
    }

    const jsonString = JSON.stringify(toSend);
    const xhr = new XMLHttpRequest();

    xhr.open("POST", "http://localhost:8090/api/auth/event");
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.send(jsonString);
    console.log(jsonString);

  };
}
export default MyPlugin;