[英]how to support Promises in Internet Explorer 11 using laravel mix?
我試圖弄清楚如何讓laravel-mix
將 ES6 javascript 代碼轉換為 Inte.net Explorer 11 可以使用的 javascript 代碼。
我設置了一個全新的 laravel 9 項目並進行了以下更改:
resources/js/app.js
let promise = new Promise(function(resolve, reject) {
setTimeout(() => resolve("done!"), 1000);
});
promise.then(
result => alert(result),
);
添加到package.json
"browserslist": [
"IE 11"
]
添加到resources/views/welcome.blade.php
<script type="text/JavaScript" src="{{ mix('js/app.js') }}"></script>
最后
npm install
npx mix
php artisan serve
代碼在 Chromium 中運行良好,但在 Inte.net Explorer 中運行失敗,出現錯誤'Promise' is undefined
。 如何讓 laravel-mix 包含 Promise polyfill?
您還可以使用混合擴展,例如laravel-mix-polyfill
let mix = require('laravel-mix');
require('laravel-mix-polyfill');
mix.js('resources/js/app.js', 'public/js')
.polyfill({
enabled: true,
useBuiltIns: "usage",
targets: "firefox 50, IE 11"
});
如果你不介意跳過與 laravel-mix 的集成,你可以在刀片視圖/布局中添加它:
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
否則,您可以嘗試在resources/js/bootstrap.js
中添加(未測試):
window.Promise = require('promise-polyfill').default;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.