我可以在现代 Swift 的 JavaScriptCore 中加载 JS ES6+ 模块吗?



使用 JavaScriptCore,我想将现代 Javascript 代码库的一部分集成到适用于 ios/ipados 13 的 Swift 5.x 程序中。JS代码广泛使用ES6+功能。例如:async/await、静态导入(import * as something from “something.js”(和动态导入('await loadedModule = import("something.js"(;

根据 2018 年的这篇文章,导入语句似乎在那个时候没有正确实现:如何在 Swift 的 JavaScriptCore 中导入模块?

(我认为复活这篇文章是不合适的,因为在这一点上已经发生了很多变化。

从那时起,JavaScriptCore 是否集成了这些功能?根据我的理解,如果它们在 Safari 浏览器中工作,那么它们也应该在独立的 JavaScriptCore 中工作(或者假设是错误的(?我认为使用 babel 或 webpack 来转换我的代码是不切实际的。

如果可能的话,我如何从 Swift 加载这种 JavaScript?

编辑:

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

当我尝试以下操作时:

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

答案是否定的,但我可以使用 Babel 将静态导入/导出的文件转译为包含requires 的代码,也可以在 Swift 中实现我自己的require版本来模拟我想要的。

最新更新