iOS 9: "неожиданное использование зарезервированного слова" let "в строгом режиме" + "Cannot find variable: fetch". Проблемы с трансплантацией? Как исправить?
Используя VueCli 3 "из коробки", я обнаружил, что мой код не работает на моем iPad 2 (iOS 9.3) и, используя эмулятор iOS 9.3, я получил следующие ошибки:
1) "неожиданное использование зарезервированного слова" let "в строгом режиме". В целях тестирования я обнаружил, какой внешний компонент создает эту ошибку, и временно удалил ее, но затем я получил другую ошибку...
2) "Не могу найти переменную: fetch". я нашел это fetch
используется apollo-link.
Кажется, что по какой-то причине мой проект не может быть перенесен, однако, похоже, я перепробовал все, что упомянуто на этой странице документа.
Что я пытался сделать, чтобы как-то перенести проект:
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. Мой проект использует PWA/ServiceWorker, который iOS 9 не поддерживает, но я не думаю, что 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
,
Как видно из третьего примера с домашней страницы Babel, Babel поддерживает const
и это должно быть перенесено, но в скомпилированном chunk-vendors.xyz.js
файл, который выдает все ошибки, упомянутые выше, теперь я вижу 507 const
"S. Это похоже на build
игнорирует Бабель.
Буду признателен за любые идеи.
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
,