vuedraggable在safari兼容问题

在vue中使用vuedraggable插件,代码中只要
import draggable from "vuedraggable";
在safari浏览器中报错:TypeError: 'undefined' is not an object (evaluating 'setPublicPath_i.src.match')
大家有碰到这类问题吗

这个错误是由于 vuedraggable 插件中使用了 SystemJS 的 setPublicPath 方法,而 Safari 浏览器不支持这个方法导致的。
一个解决办法是禁用 setPublicPath 方法:

import draggable from "vuedraggable";

if (process.browser) {
  const setPublicPath = draggable.setPublicPath;
  draggable.setPublicPath = () => {};
}

另一种解决办法是在你的项目中引入这个包 systemjs ,在引入 draggable 的地方使用这个方式引入

import draggable from "vuedraggable/dist/vuedraggable.common";