2016-08-15 771 views
1

我正在开发VS代码的扩展(使用JavaScript)。现在我需要安装VS Code的路径。 有一个用于Windows的方式:VS Code的扩展如何获得VS Code的安装路径?

var child = require('child_process'); 
child.exec('reg query HKEY_CLASSES_ROOT\\*\\shell\\VSCode /v Icon', function (error, strOut, strError) { 
//some code... 
}) 

但是当用户正确只安装VS代码它的工作原理。如果这个文件夹是从其他机器上复制的(这对于注册表中的VS代码没有任何意义),该功能将失败。

在另一方面,它不能在所有Linux或OS X.

我不知道是否有它的API可以帮助工作(我什么也没发现),或者其他的方式可以得到这条道路。

回答

1

我不知道你为什么需要VSCODE的目录,但我需要的目录是我的extesion。 它可以作为访问如下:

var myExtDir = vscode.extensions.getExtension ("publisher.name").extensionPath; 

如果出版商和名称是的package.json

+0

那么,我需要vscode目录,因为我想修改其中的HTML文件。我在github上找到了一个项目([shalldie/vscode-background](https://github.com/shalldie/vscode-background/))就提供了一种方法。否则,我放弃了在vscode上开发,因为我发现开发Atom的扩展更容易。 – illyrix

0

我想我补充一点,你发现自己的情况下,回答别人上门找相同事情。

path.dirname(require.main.filename); 
在Ubuntu

返回(对我来说)

/usr/share/code/resources/app/out 

,并在Windows,返回

c:\Program Files\Microsoft VS Code\resources\app\out 

它应该返回适​​合OSX东西太多。

这是包含bootstrap.js的文件夹,足以确定应用程序的安装位置(在此实例中为默认位置)。

在我的情况下,我想要一个作为vscode的一部分构建的节点模块之一(vscode-ripgrep)的路径,所以我必须处理更多的路径,但它完成了这项工作。

0

VSCode编写并使用node.js,因此您可以访问计算机,用户和节点环境变量。

要获取VSCode的已用安装路径,可以使用以下方法;

process.env.VSCODE_CWD

举例来说,如果我的分机做的第一件事是; console.log(process.env.VSCODE_CWD)它将在调试控制台C:\Program Files\Microsoft VS Code中打印出以下内容(这是我安装VSCode的地方)。

相关问题