簡體   English   中英

如何使用 laravel 組合支持 Inte.net Explorer 11 中的 Promises?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM