Closed QuarterHeaven closed 2 months ago
加载完 deno-bridge-jieba 默认就是启动状态,不用再手动运行 deno-bridge-jieba-start,直接尝试其他命令即可。你可以list-process 查看进程状态。
list-process 里面有这两个。
我等了一会发现似乎连接上了,但是现在在中文文本中会报 ⛔ Error (websocket): in callback `on-message': Symbol's function definition is void: json-parse-string 错误。这个怎么解决?
json-parse-string 是 emacs 27.1 以后自带的方法。你的 emacs version 版本比较低吗?
是 emacs 29. "GNU Emacs 29.0.50 (build 1, x86_64-apple-darwin22.1.0, NS appkit-2299.00 Version 13.0 (Build 22A380)) of 2022-11-22"
那就不理解了,应该是有的才对。describe-function 无法找到 json-parse-string 吗?
找不到。
只有这些与 json 相关的 function.
很遗憾,我也没有头绪为什么 json-parse-string 消失了。
@ginqi7 我这边发现, 当笔记本切换到一个陌生环境没网的时候, 会因为下面错误导致这个issue:
error: Uncaught (in promise) TypeError: error sending request for url (https://cdn.jsdelivr.net/gh/wangbinyq/deno-jieba@wasm/lib/deno_jieba_bg.wasm): error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution const wasmResponse = await fetch(wasm_url); ^ at async mainFetch (ext:deno_fetch/26_fetch.js:266:12) at async fetch (ext:deno_fetch/26_fetch.js:490:7) at async instantiateModule (https://cdn.jsdelivr.net/gh/wangbinyq/deno-jieba@wasm/lib/deno_jieba.generated.js:462:28) at async https://cdn.jsdelivr.net/gh/wangbinyq/deno-jieba@wasm/lib/deno_jieba.generated.js:401:27 at async Module.instantiate (https://cdn.jsdelivr.net/gh/wangbinyq/deno-jieba@wasm/lib/deno_jieba.generated.js:379:11) at async https://cdn.jsdelivr.net/gh/wangbinyq/deno-jieba@wasm/mod.ts:3:1
@manateelazycat 看起来是网络的原因,dns 没有解析到 jsdelivr。感觉这里可以不使用 cdn,直接把对应的 wasm 文件下载下来,放在code里,直接引用。
@manateelazycat 看起来是网络的原因,dns 没有解析到 jsdelivr。感觉这里可以不使用 cdn,直接把对应的 wasm 文件下载下来,放在code里,直接引用。
对,原来遇到过很多次,都不知道原因。
@ginqi7 大佬, 能否改进一下呢? 这样有时候没网的时候, 不至于没法用。
@manateelazycat 调研了一下,deno 缓存 package 文件只会缓存对应的 ts 文件,对于 wasm 文件每次都会重新拉取。因此断网使用会有问题。
我新拉了一个分支 submodule,然后把 deno-jieba wasm 作为一个 submodule,直接把源码拉下来,不使用 jsdelivr 远端的代码。这样就可以离线使用了。
你可以切换到 submodule 分支,然后把依赖的 deno-jieba submodule 也拉下来,试试看。
@ginqi7 我今天早上试了 submodule 分支, 确实断网情况下不会报 wasm 的错误了。
@ginqi7 建议合并submodule到主分支。
@manateelazycat 已合并。
已经安装了 deno, deno-bridge, websocket,
M-x deno-bridge-jieba-start
显示 Address already in use. 怎么才能正常使用呢?