首页 > 解决方案 > 使用 feathersjs 时如何使 vuejs 应用程序与 IE 11 一起工作

问题描述

在创建标准 vue 应用程序(使用 vue-cli v3.0)并包括@feathersjs/feathers为了实现与羽毛 API 的连接时,我在 Internet Explorer 11 中遇到错误(SCRIPT1010: Expected identifier

底线是找到一种简单的方法来解决这样的问题,因为在更大的项目中很容易找到很多库问题,有时需要支持至少一个版本的 Internet Explorer(至少从业务角度来看)

我在羽毛网站 ( https://docs.feathersjs.com/api/client.html#module-loaders ) 上读到该库使用 ES6,因此在这种情况下,必须对其进行转译才能在 IE11 之类的浏览器中工作。

所以我尝试了这个但完全没有运气:

// vue.config.js
module.exports = {
  baseUrl: '/',
  transpileDependencies: [
    '@feathers/commons',
    '@feathers/errors',
    '@feathers/feathers',
    'debug'
  ]
}

甚至在 chrome 中也出现错误:Uncaught ReferenceError: exports is not defined

我创建了一个项目来显示此错误:https ://github.com/riescorp/vue-internet-explorer

应该能够为这个应用程序使用 IE11,即使它运行不快或看起来不错,但可以运行。

标签: vue.jsbabeljsfeathersjstranspiler

解决方案


我终于设法解决了这个问题。

这是解决babel.config.js问题的配置:

module.exports = {
  presets: ['@vue/app'],
  plugins: ['@babel/transform-modules-commonjs']
}

我的也有一个错字,vue.config.js应该是这样的:

// vue.config.js
module.exports = {
  baseUrl: '/',
  transpileDependencies: [
    '@feathersjs',
    'debug'
  ]
}

最后,当使用羽毛时,这条线不起作用:

.configure(restClient.fetch(window.fetch))

所以你可以用import 'whatwg-fetch'它来解决它(记得安装它npm i whatwg-fetch


推荐阅读