Saya mengalami kesulitan luar biasa untuk membuat polyfill saya bekerja di Edge. Saya sudah mencoba mengikuti dokumentasi dengan berbagai upaya yang semuanya tidak berfungsi. Tampaknya itu janji. Akhirnya secara khusus itu tidak berhasil. Ini terjadi dalam modul vuex jadi saya mencoba menambahkan vuex ke transpileDependencies di vue.config tetapi tidak berhasil.
Babel.config.js saya:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
Di main.js saya, saya memiliki dua impor berikut di bagian paling atas:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
Vue.config.js saya
// 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'],
};
Catatan seperti yang disebutkan di atas saya telah mencoba keduanya dengan dan tanpa transpileDepedencies. Dikatakan di sini vue / babel-preset-app yang es7.promise.finally
disertakan sebagai polyfill default
Versi:
- 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"
Perbarui 13/02
Jadi saya mencoba mengetik Promise.prototype di situs saya di tepi dan tampaknya itu adalah polyfilled:
Jadi saat ini saya sedang menyelidiki jika beberapa bagian dari rantai saya (axios / vue axios) tidak memberikan janji. Karena ini bekerja di chrome, saya curiga ada bagian rantai yang tidak terisi dengan benar?
Ini seluruh rantai saya:
/* 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()
pada Promise sejak v18