服务器角度ls:xxxxx/启动已退出,Emacs LSP中的状态为退出



每次在Angular项目中打开一个新的TypeScript文件时,它都会抛出一个错误

服务器角度ls:xxxxx/启动已退出,状态为退出(有关详细信息,请查看相应的stderr(。是否要重新启动它?(y或n(

角度ls:stderr缓冲区:

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的工件。

如何修复?

这并不是对发布的问题的回答,而是对一个相关问题的回答:如何修复上述错误消息。对我来说,安装angular语言服务器有帮助:

npm install -g @angular/language-service@next typescript @angular/language-server

(在项目目录中运行(

经过一点调试:无需完全禁用。您可以直接调整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"))))))

最新更新