iOS9:“在严格模式下意外使用了保留字‘let’”+“找不到变量:fetch”。转译问题?怎么修?

iOS 9: “unexpected use of reserved word ‘let’ in strict mode” + “Can’t find variable: fetch”. Transpiling issues? How to fix?

使用 VueCli 3 "from the box",我发现我的代码在我的 iPad 2 (iOS 9.3) 和使用 iOS 9.3 模拟器上不起作用下一个错误:

1) "unexpected use of reserved word 'let' in strict mode"。出于测试目的,我发现哪个外部组件产生了这个错误并临时删除了它,但后来我又遇到了另一个错误...

2) "Can't find variable: fetch"。我发现fetch被apollo使用了-link.

似乎由于某种原因我的项目无法转译,但看起来我已经尝试了所有提到的方法 on this doc page

为了以某种方式转换项目,我尝试做的事情:

1) 我将 iOS >= 9.3 添加到 .browserlistrc -> 没有任何变化;

2) 将 import '@babel/polyfill' 添加到 main.js

module.exports = {
  presets: [
    ['@vue/app', { useBuiltIns: "entry" }]
  ]
} 

babel.config.js -> 没有任何变化;

3) 试图将 on/off modern mode -> 没有改变;

4) 尝试添加

module.exports = {
  ...
  transpileDependencies: ['vue-apollo']
}

vue.config.js -> 没有任何变化。

为了以防万一,我的 dependencies:

"dependencies": {
  "bootstrap-vue": "^2.0.0-rc.11",
  "register-service-worker": "^1.5.2",
  "vue": "^2.5.17",
  "vue-apollo": "^3.0.0-beta.11",
  "vue-awesome-swiper": "^3.1.3",
  "vue-draggable-resizable": "git+https://github.com/mauricius/vue-draggable-resizable.git#develop",
  "vue-router": "^3.0.1",
  "vue-youtube": "^1.3.0",
  "vuedraggable": "^2.17.0",
  "vuex": "^3.0.1",
  "vuex-persistedstate": "^2.5.4"
},

所以没有任何帮助 -> iOS 9.3 仍然有问题。我的项目使用 PWA/ServiceWorker,iOS 9 不支持,但我不认为 SW 与这个问题有任何关系,因为它根本不应该被注册/应该被 [=85= 忽略] 9.

我发现 iOS 9 既不支持 let nor fetch,但据我了解,vue-cli 应该根据我的设置来处理它。我是否遗漏了任何设置?

那么,我应该怎么做才能让项目在 iOS 9 上运行?

编辑:

1) let 来自 vue-draggable-resizable,我暂时删除了它。

2) fetch 我通过将 import 'whatwg-fetch' 添加到 main.js

来修复

现在我看到下一个问题: Unexpected keyword 'const'. Const declarations are not supported in strict mode.

正如我从the Babel home page的第3个例子中看到的那样,Babel支持const并且它必须被转译,但是在编译的chunk-vendors.xyz.js文件中,它会产生上述所有错误, 现在我看到 507 const 的。似乎 build 忽略了 Babel。

如果有任何想法,我将不胜感激。

我一一检查了我所有的依赖项 -> 只是在 main.jsApp.vue 更改为:

中一一导入的组件
<template>
  <div id="app">
    TEST
  </div>
</template>

结果是:

1) boostrap-vue 产生 const 个问题

2) vue-draggable-resizable 产生 let 个问题。

3) apollo-link 产生 fetch 个问题。

所以,在我的例子中,我需要将 import 'whatwg-fetch' 添加到 main.js

module.exports = {
  ...
  transpileDependencies: ['bootstrap-vue', 'vue-draggable-resizable']
}

vue.config.js.