我如何 运行 tsserver 作为移动设备上的后台进程(即使用 JavaScriptCore 但没有节点;并避免基于 webview 的解决方案)?

How can I run tsserver as a background process on mobile (i.e. with JavaScriptCore but without node; and avoiding webview-based solutions)?

我为 iOS 制作了一个简单的 JS 文本编辑器应用程序;我想使用 tsserver 来获得智能感知和转译。我可以看到如何通过节点或浏览器 运行 tsserver(作为 TypeScript Playground 的一部分——但是,它与 Monaco 编辑器一起出现,我希望它无头,但我没有立即看到如何分离他们)。

要考虑的困难之一是它可能需要文件系统访问权限才能加载任何 TypeScript 库(我将加载许多自定义库)——我不确定如何优雅地解决这个问题纯粹的 JavaScriptCore 解决方案。

有没有办法在移动设备上将 tsserver 设置为 运行,最好不涉及 webview(因为这是不必要的开销)?

I can see how to run tsserver via node or via the browser (as part of TypeScript Playground)

误解在这里。 tsserver only 运行s in node : https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-(tsserver) The TypeScript standalone server (aka tsserver) is a node executable

操场上运行有什么?

TypeScript 语言 服务 https://github.com/Microsoft/TypeScript/wiki/Using-the-Language-Service-API 就是操场上的 运行。它允许您拦截 "does this file exist" 或 "please read this file" 之类的调用并将它们重定向到 (disk for node, server for in浏览器)等

Is there a way to set up just tsserver to run on mobile, ideally without getting a webview involved (as it's unnecessary overhead)?

所以基本上没有。 tsserver 不适用于非节点环境。

however, it comes along with the Monaco editor, and I want it headless, but I don't immediately see how to separate them

如果你想在浏览器中使用 IDE 这里有一个不错的免费 OSS 确实使用了 monaco : https://github.com/agentcooper/typescript-play(但至少它是开源的并通过)。摩纳哥并没有那么糟糕。你必须从某个地方开始❤

更多

为了在没有 运行ning tsc or tsserver 的情况下 运行 TypeScript 编译器编译一些文件,你有两个选择:

我认为对于你的情况(没有 IDE / 实时代码编辑等)编译器 api 就足够了。