Estou com um tremendo problema para que meus polyfills funcionem no Edge. Eu tentei seguir a documentação com várias tentativas, todas não funcionando. Parece ser promessa. Finalmente, especificamente, isso não está funcionando. Isso acontece em um módulo vuex, então tentei adicionar o vuex ao transpileDependencies no vue.config, mas sem sorte.
Meu babel.config.js:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
No meu main.js, tenho as duas importações a seguir no topo:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
Meu vue.config.js
// eslint-disable-next-line import/no-extraneous-dependencies
const webpack = require('webpack');
const isProd = process.env.NODE_ENV === 'production';
module.exports = {
configureWebpack: {
// Set up all the aliases we use in our app.
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 6,
}),
],
},
css: {
// Enable CSS source maps.
sourceMap: !isProd,
},
transpileDependencies: ['vuex'],
};
Observe como mencionado acima, eu tentei com e sem o transpileDepedencies. Ele diz aqui vue / babel-preset-app que es7.promise.finally
está incluído como um polyfill padrão
Versões:
- Microsoft Edge: 44.18
- Microsoft EdgeHTML 18.18362
- @ vue / cli-plugin-babel ":" ^ 4.1.2 "
- "core-js": "^ 3.6.4"
- "regenerator-runtime": "^ 0.13.3"
Atualização 13/02
Então, eu tentei digitar Promise.prototype no meu site em edge e parece que ele é polyfilled:
Atualmente, estou investigando se alguma parte da minha cadeia (axios / vue axios) não retorna uma promessa. Como ele está funcionando no chrome, estou suspeitando que uma parte da cadeia não está sendo polifilada corretamente?
Esta é toda a minha cadeia:
/* VUEX MODULE ACTION */
[a.ALL_CUSTOMERS](context) {
context.commit(m.SET_CUSTOMER_LOADING, true);
CustomerService.getAll()
.then(({ data }) => {
context.commit(m.SET_CUSTOMERS, data);
})
.finally(() => context.commit(m.SET_CUSTOMER_LOADING, false));
},
/* CUSTOMER SERVICE */
import ApiService from '@/common/api.service';
const CustomerService = {
getAll() {
const resource = 'customers/';
return ApiService.get(resource);
},
...
}
/* API SERVICE */
import Vue from 'vue';
import axios from 'axios';
import VueAxios from 'vue-axios';
const ApiService = {
init() {
Vue.use(VueAxios, axios);
let baseUrl = process.env.VUE_APP_APIURL;
Vue.axios.defaults.baseURL = baseUrl;
},
setHeader() {
Vue.axios.defaults.headers.common.Authorization = `Bearer ${getToken()}`;
},
get(resource) {
this.setHeader();
return Vue.axios.get(`${resource}`);
},
...
}
*Version number used for Edge is based on the number of EdgeHTML rather than Edge itself. This is because EdgeHTML is the engine for Edge that is related to feature support change.
finally()
Promise desde a v18