iOS 9:“在严格模式下意外使用保留字'let'” +“找不到变量:提取”。转码问题?怎么修?

时间:2018-12-09 02:03:21

标签: ios vuejs2 babeljs transpiler vue-cli-3

使用VueCli 3“从盒子里”,我发现我的代码在我的iPad 2(iOS 9.3)上不起作用,并且使用iOS 9.3仿真器,我遇到了下一个错误:

1)“在严格模式下意外使用保留字'let'”。出于测试目的,我发现哪个外部组件会产生此错误并暂时将其删除,但随后又出现了另一个错误...

2)“找不到变量:提取”。我发现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)尝试打开/关闭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仍然有问题。我的项目使用的是iOS 9不支持的PWA / ServiceWorker,但我认为SW与该问题没有任何关系,因为它根本不应该被注册/应该被iOS 9忽略。

我发现iOS 9不支持let也不支持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的第三个示例中可以看到,Babel支持const,必须对其进行转译,但是在已编译的chunk-vendors.xyz.js文件中,该文件会产生上述所有错误,现在我看到507个const。似乎build忽略了Babel。

我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我一一检查了我所有的依赖关系->刚在main.js中将导入的组件一一注释,并将App.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

相关问题