ฉันมีปัญหาอย่างมากในการทำให้ polyfills ทำงานใน Edge ฉันพยายามติดตามเอกสารด้วยความพยายามต่าง ๆ ทั้งหมดไม่ทำงาน ดูเหมือนจะเป็นสัญญาในที่สุดโดยเฉพาะที่ไม่ทำงาน สิ่งนี้เกิดขึ้นในโมดูล vuexดังนั้นฉันจึงลองเพิ่ม vuex ลงใน transpileDependencies ใน vue.config แต่ไม่มีโชค
babel.config.js ของฉัน:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
ใน main.js ของฉันฉันมีการนำเข้าสองรายการต่อไปนี้ในลำดับต้น ๆ :
import 'core-js/stable';
import 'regenerator-runtime/runtime';
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'],
};
หมายเหตุดังกล่าวข้างต้นฉันได้ลองทั้งที่มีและไม่มี transpileDepedencies มันบอกว่าที่นี่vue / babel-preset-appที่es7.promise.finally
รวมเป็น polyfill เริ่มต้น
รุ่น:
- 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"
อัปเดต 13/02
ดังนั้นฉันจึงพยายามพิมพ์ Promise.prototype บนไซต์ของฉันที่ขอบและมันจะปรากฏว่าเป็น polyfilled:
ดังนั้นตอนนี้ฉันกำลังตรวจสอบว่าบางส่วนของโซ่ (axios / vue axios) ของฉันไม่คืนสัญญา เนื่องจากมันทำงานกับโครเมียมฉันสงสัยว่าส่วนหนึ่งของโซ่ไม่ได้รับการเติมโพลีอย่างถูกต้องหรือไม่?
นี่คือห่วงโซ่ทั้งหมดของฉัน:
/* 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()
สัญญาตั้งแต่ v18