簡體   English   中英

我可以在現代 Swift 的 JavaScriptCore 中加載 JS ES6+ 模塊嗎?

[英]Can I load JS ES6+ modules in modern Swift’s JavaScriptCore?

使用 JavaScriptCore,我想將現代 Javascript 代碼庫的一部分集成到 ios/ipados 13 的 Swift 5.x 程序中。 JS 代碼廣泛使用 ES6+ 功能。 例如: async/await 、靜態導入( import * as something from “something.js” )和動態導入(`await loadedModule = import(“something.js”);

根據 2018 年的這篇文章,似乎當時沒有正確實現 import 語句: 如何在 Swift 的 JavaScriptCore 中導入模塊?

(我認為重新發布該帖子是不合適的,因為此時已經發生了很多變化。)

從那時起,JavaScriptCore 是否集成了這些功能? 根據我的理解,如果它們在 Safari 瀏覽器中工作,那么它們也應該在獨立的 JavaScriptCore 中工作(或者假設是錯誤的)? 我認為使用 babel 或 webpack 來轉換我的代碼是不切實際的。

如果可能,我如何從 Swift 加載這種 JavaScript?

編輯:

我仍然收到JS Exception: SyntaxError: Unexpected token '*'. import call expects exactly one argument. JS Exception: SyntaxError: Unexpected token '*'. import call expects exactly one argument.

當我嘗試以下操作時:

import * as mod from "./mod.js";

答案是否定的,但我可以使用 Babel 將帶有靜態導入/導出的文件轉換為包含require的代碼,並且還可以在 Swift 中實現我自己的require版本來模擬我想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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