我应该如何将我的语言服务器与我的客户端打包?

Posted

技术标签:

【中文标题】我应该如何将我的语言服务器与我的客户端打包?【英文标题】:How should I package my Language Server with my client? 【发布时间】:2017-12-02 11:39:58 【问题描述】:

我正在尝试为 VSCode 创建一个语言服务器。它由一个客户端和一个服务器组成,通过 RPC 进行通信。

官方文档有一个working example,语言服务器分为两个目录,clientserver

我想做的是将两者打包成一个 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"

之后packagepublish 都应该与vsce 一起使用。

【讨论】:

以上是关于我应该如何将我的语言服务器与我的客户端打包?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的 Rest Api 服务器与我的 Web Socket 服务器通信

为啥我应该将我的域实体与我的表示层隔离?

如何使用 maven 将我的 web 应用程序和 tomcat 打包在一起?

如何将我的持续集成系统与我的错误跟踪系统集成?

如何在 net 5.0 中使用服务通信?

将我的客户分析帐户与我自己的 Adwords 帐户相关联