typescript 服务器angular-ls:xxxxx/starting退出,状态为Emacs LSP中的exit

ax6ht2ek  于 2023-03-04  发布在  TypeScript
关注(0)|答案(2)|浏览(171)

每次在Angular项目中打开新的TypeScript文件时,都会引发错误
服务器angular-ls:xxxxx/starting退出,状态为exit(有关详细信息,请检查相应的标准错误)。是否要重新启动它?(y或n)
Angular -ls:标准误差缓冲区:

internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/usr/lib/node_modules/@angular/language-server'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

package.json、yarn.lock或tsconfig.json中没有任何与@angular/language-service相关的内容,但“某个东西”一直试图启动它。
需要说明的是,我并不想完全禁用TypeScript语言服务/LSP(关闭此对话框后它可以正常工作),我只想删除@angular/language-service的工件。
怎么解决呢?

kgqe7b3p

kgqe7b3p1#

经过一番调试:不需要完全禁用它,你可以只调整lsp-clients-angular-language-server-command来代替。
如果您本地安装了@angular/language-server(每个项目),则.dir-locals.el中的以下elisp可以解决此问题:

((nil
  (eval . (setq lsp-clients-angular-language-server-command
                (let ((curr-proj-root (projectile-project-root)))
                  `("node"
                    ,(concat curr-proj-root "node_modules/@angular/language-server")
                    "--ngProbeLocations"
                    ,(concat curr-proj-root "node_modules")
                    "--tsProbeLocations"
                    ,(concat curr-proj-root "node_modules")
                    "--stdio"))))))
zbdgwd5y

zbdgwd5y2#

不完全是对发布的问题的回答,而是对一个相关问题的回答:如何修复上述错误信息。对我来说安装角语言服务器帮助:
npm install -g @angular/language-service@next typescript @angular/language-server
(run在项目目录中)

相关问题