Как заставить приложение vuejs работать с IE 11 при использовании feathersjs
При создании стандартного приложения vue (с использованием vue-cli v3.0) и включении @feathersjs/feathers
чтобы реализовать соединение с API перьев, я получаю сообщение об ошибке с Internet Explorer 11 (SCRIPT1010: Expected identifier
)
Суть в том, чтобы найти простой способ решения таких проблем, потому что в больших проектах можно легко найти множество проблем с библиотеками, а иногда необходимо поддерживать хотя бы одну версию Internet Explorer (по крайней мере, с точки зрения бизнеса).
Я прочитал на сайте перьев ( https://docs.feathersjs.com/api/client.html), что библиотека использует ES6, поэтому в этом случае она должна быть передана для работы в браузере, таком как IE11.
Я попробовал это, но не повезло:
// vue.config.js
module.exports = {
baseUrl: '/',
transpileDependencies: [
'@feathers/commons',
'@feathers/errors',
'@feathers/feathers',
'debug'
]
}
и получил ошибки даже в хроме: Uncaught ReferenceError: exports is not defined
Я создал проект, чтобы показать эту ошибку: https://github.com/riescorp/vue-internet-explorer
Нужно уметь использовать IE11 для этого приложения, даже если оно не работает быстро или выглядит красиво, но работает.
2 ответа
Мне наконец удалось решить эту проблему.
Это 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
)
Я считаю, что процесс должен быть таким же, как и следование указаниям на веб-сайте Vuetify в разделе этой страницы, озаглавленном "Поддержка IE11 и Safari 9" (прокрутите вниз): https://vuetifyjs.com/en/getting-started/quick-start
Мне не нужно было делать ничего другого в моих проектах, что я помню.