Как динамически запрашивать мою версию расширения VSCode из кода расширения?

Я пишу расширение для VSCode. Я хотел бы получить версию расширения во время выполнения из собственного кода. Есть ли способ сделать это?

Я нашел VSCode.extensions.getExtension('myExtensionId').packageJSON, но не знаю, что с этим делать.


person Julien H. - SonarSource Team    schedule 22.05.2017    source источник
comment
См. также stackoverflow.com/a/66856807/836330 для получения обновленной информации о получении версии расширения и другой информации.   -  person Mark    schedule 29.03.2021


Ответы (2)


Я был наконец близок. С использованием:

VSCode.extensions.getExtension('publisher.myExtensionId').packageJSON.version

кажется, делает свое дело.

person Julien H. - SonarSource Team    schedule 22.05.2017
comment
не забудьте также проверить неопределенность: VSCode.extensions.getExtension('publisher.myExtensionId')!.packageJSON.version - person GorvGoyl; 21.02.2021

Когда расширение активировано, текущий контекст расширения передается в качестве аргумента. Вы можете использовать context.extensionPath вместо жестко заданной строки идентификатора расширения 'publisher.myExtensionId'.

import * as Path from 'path';
import * as fs from 'fs';

export function activate(context: vscode.ExtensionContext) {
    var extensionPath = Path.join(context.extensionPath, "package.json");
    var packageFile = JSON.parse(fs.readFileSync(extensionPath, 'utf8'));

    if (packageFile) {
        console.log(packageFile.version);
    }

//......... rest

}
person Mircea Matei    schedule 19.01.2019