繁体   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