Visual studio code VS代码的扩展如何获得VS代码的安装路径?

Visual studio code VS代码的扩展如何获得VS代码的安装路径?,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在开发VS代码的扩展(使用javascript)。现在我需要安装VS代码的路径。 windows有一种方法: var child = require('child_process'); child.exec('reg query HKEY_CLASSES_ROOT\\*\\shell\\VSCode /v Icon', function (error, strOut, strError) { //some code... }) 但它只能在用户正确安装VS代码时工作。如果此文件夹是从其他计

我正在开发VS代码的扩展(使用javascript)。现在我需要安装VS代码的路径。 windows有一种方法:

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或OSX上根本无法工作


我想知道是否有API可以提供帮助(我没有发现任何东西),或者其他方法可以获得该路径。

我不知道为什么您需要VSCODE目录,但我需要我的扩展目录。 可通过以下方式访问:

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

publisher和name在package.json中的位置我想我应该添加一个答案,即您自己找到的,以防其他人来寻找相同的东西

path.dirname(require.main.filename);
在Ubuntu中返回(对于我)

在Windows中,返回

c:\Program Files\Microsoft VS Code\resources\app\out
它也应该返回适合OSX的内容

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


在我的例子中,我想要一个节点模块(vscode ripgrep)的路径,该模块是作为vscode的一部分构建的,因此我必须对路径进行更多的处理,但它完成了这项工作。

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

要获取VSCode的已使用安装路径,可以使用以下命令:

process.env.VSCODE\u CWD

例如,如果我的扩展所做的第一件事是;
console.log(process.env.VSCODE\u CWD)
它将在调试控制台
C:\Program Files\Microsoft VS code
(这是我安装VSCODE的地方)。

您现在可以使用

const vscodeInstallPath = vscode.env.appRoot;

嗯,我需要vscode的dir,因为我想修改其中的HTML文件。我刚刚在github()上发现了一个项目,它提供了一种方法。否则,我就放弃了开发vscode,因为我发现开发Atom的扩展更容易。
const vscodeInstallPath = vscode.env.appRoot;