We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
您好?我很喜欢你的项目,但是他在 typora 1.10.5-dev 上无法正常运行
(虽然提出为测试版做适配的 issue 很奇怪,但是希望能在 1.10 到来前提前做好准备)
The text was updated successfully, but these errors were encountered:
尝试复现了一下,macOS 上没有问题。在 Windows 上出现了意外打开 language-server.cjs 并且未启动 Copilot LSP 的问题,我猜 Linux 上也有同样的问题,因为 Windows/Linux 上的通信机制基本相同。
language-server.cjs
有一个非常简单的修复方式,但要求电脑上已经安装了 Node.js。打开安装目录下的 copilot/index.js 文件(对于 Windows,通常是 C:\Program Files\Typora\resources\copilot\index.js),找到以下代码:
copilot/index.js
C:\Program Files\Typora\resources\copilot\index.js
if (nodeVersion[0] >= 18) return (modulePath) => Promise.resolve( wrapNodeChildProcess(fork(modulePath, [], { silent: true })), );
修改为:
if (nodeVersion[0] >= 18) return (modulePath) => Promise.resolve( wrapNodeChildProcess(spawn("node", [modulePath])), );
我暂时不会考虑将这个修复方法更新到仓库中,因为这需要 Windows/Linux 用户额外安装 Node.js,我这几天会试试看能不能找到不需要用户安装 Node.js 的修复方案。
从上面的修复中可以看出,问题定位非常简单,就是源于 Typora 1.10 中 fork 没有正常工作(没有按照预期的启动一个 Node.js 进程),反而启动了当前进程(也就是 Typora 进程本身)。我排查了挺久到底是啥更新导致 fork 不能正常工作,但目前没有找到原因。说实话这个问题实在是有点匪夷所思,因为 child_process.fork 的代码在 Typora 1.10 的更新中没有任何改动。
fork
child_process.fork
Sorry, something went wrong.
No branches or pull requests
您好?我很喜欢你的项目,但是他在 typora 1.10.5-dev 上无法正常运行
(虽然提出为测试版做适配的 issue 很奇怪,但是希望能在 1.10 到来前提前做好准备)
The text was updated successfully, but these errors were encountered: