Добавить плагин с определенным GlobalErrorhandler в Vue

#javascript #vue.js #plugins

#javascript #vue.js #Плагины

Вопрос:

Я написал и добавил globalerrorhandler (Vue.config.ErrorHandler, window.onerror, …)

Я следил за «Написанием плагина в vue» на веб-сайте vue.

Но я получаю следующую ошибку, и я не знаю почему: ‘MyPlugin’ не определен

Я создал папку плагинов в своем проекте. В эту папку я добавил еще одну папку «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);
        
        };

}
  

Ответ №1:

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;