J'ai énormément de mal à faire fonctionner mes polyfills dans Edge. J'ai essayé de suivre la documentation avec diverses tentatives qui ne fonctionnaient pas. Il semble que ce soit prometteur. Enfin, cela ne fonctionne pas. Cela se produit dans un module vuex , j'ai donc essayé d'ajouter vuex à transpileDependencies dans vue.config mais sans succès.
Mon babel.config.js:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
Dans mon main.js, j'ai les deux importations suivantes tout en haut:
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'],
};
Notez que comme mentionné ci-dessus, j'ai essayé à la fois avec et sans transpileDepedencies. Il dit ici vue / babel-preset-app qui es7.promise.finally
est inclus comme polyfill par défaut
Versions:
- Microsoft Edge: 44.18
- Microsoft EdgeHTML 18.18362
- @ vue / cli-plugin-babel ":" ^ 4.1.2 "
- "core-js": "^ 3.6.4"
- "régénérateur-runtime": "^ 0.13.3"
Mise à jour 13/02
J'ai donc essayé de taper Promise.prototype sur mon site en bord et il semble qu'il soit polyfilled:
Donc actuellement j'étudie si une partie de ma chaîne (axios / vue axios) ne retourne pas de promesse. Puisqu'il fonctionne en chrome, je soupçonne qu'une partie de la chaîne n'est pas remplie correctement?
C'est toute ma chaîne:
/* 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()
en charge Promise depuis la v18