Tengo enormes problemas para que mis polyfills funcionen en Edge. He tratado de seguir la documentación con varios intentos, todos no funcionan. Parece ser prometedor. Finalmente, específicamente, eso no está funcionando. Esto sucede en un módulo vuex, así que intenté agregar vuex a transpileDependencies en vue.config pero sin suerte.
Mi babel.config.js:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
En mi main.js tengo las siguientes dos importaciones en la parte superior:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
My 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'],
};
Tenga en cuenta que, como se mencionó anteriormente, he intentado con y sin transpileDepedencies. Aquí dice vue / babel-preset-app que es7.promise.finally
se incluye como un polyfill predeterminado
Versiones
- 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"
Actualización 13/02
Así que intenté escribir Promise.prototype en mi sitio en edge y parece que está lleno de polietileno:
Así que actualmente estoy investigando si alguna parte de mi cadena (axios / vue axios) no devuelve una promesa. Como está funcionando en Chrome, sospecho que una parte de la cadena no se está rellenando correctamente.
Esta es toda mi cadena:
/* 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()
con Promise desde la v18