我应该如何将我的语言服务器与我的客户端打包?
Posted
技术标签:
【中文标题】我应该如何将我的语言服务器与我的客户端打包?【英文标题】:How should I package my Language Server with my client? 【发布时间】:2017-12-02 11:39:58 【问题描述】:我正在尝试为 VSCode 创建一个语言服务器。它由一个客户端和一个服务器组成,通过 RPC 进行通信。
官方文档有一个working example,语言服务器分为两个目录,client
和server
。
我想做的是将两者打包成一个 VSIX 文件,这样我就可以一起安装它们。
在他们的示例中,他们对client
目录说cd
并运行vsce package
。但是,如果我这样做并安装生成的包,VSCode 会说
“错误:找不到模块'/home/blah/vscode.language-client-example-0.0.1/server/server.js”
我无法在server
目录中运行vsce package
,因为它会抱怨
“错误:缺少发布者名称”
如何打包?
【问题讨论】:
“我正在尝试为 VSCode 创建一个语言服务器。” -> 如果你正在做一个语言服务器,它应该不仅仅是 VSCode ;) 【参考方案1】:您可以发布扩展并尝试。 Official doc for publishing extensions
简而言之,请按照以下步骤操作
npm install -g vsce
vsce publish
【讨论】:
您的问题是您使用了vsce package
而不是vsce publish
命令。
是的,因为我不想公开发布【参考方案2】:
无论是打包还是发布都需要注册一个发布者。
在文档中,他们解释了如何为自己创建发布者: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#create-a-publisher
然后在您的(根)package.json
添加您的发布者 ID:"publisher": "my-publisher"
之后package
和publish
都应该与vsce
一起使用。
【讨论】:
以上是关于我应该如何将我的语言服务器与我的客户端打包?的主要内容,如果未能解决你的问题,请参考以下文章
如何将我的 Rest Api 服务器与我的 Web Socket 服务器通信