Есть ли способ получить настройки расширения (определенные в package.json) во время выполнения? - PullRequest
0 голосов
/ 06 сентября 2018

В расширении кода Visual Studio есть ли способ получить настройки расширения (определенные в package.json) во время выполнения? Есть несколько значений (например, displayName), которые я хотел бы получить.

1 Ответ

0 голосов
/ 07 сентября 2018

Расширение кода Visual Studio написано на JavaScript и ничем не отличается от стандартного сценария Node, поэтому, вообще говоря, вы можете использовать fs.readFile для чтения манифеста расширения и JSON.parse для чтения его значений.

В зависимости от вашего варианта использования возможны более простые варианты.

требуют ()

Чтобы прочитать собственное расширение package.json, вы можете просто использовать require()

Пример:

// lib/extension.js
const meta = require('../package.json')

импорт

То же, что и выше, возможно с import, по крайней мере при использовании TypeScript.

Пример

// src/extension.ts
import * as meta from '../package.json'

Обязательно добавьте объявления типов для файлов JSON

// src/index.d.ts
declare module '*.json' {
    const value: any;
    export default value;
}

Узловая зависимость

И последнее, но не менее важное: вы можете программно читать любое расширение package.json. Упрощение использования пакетов Node, таких как vscode-read-manifest , read-pkg (или read-pkg-up ).

Пример:

const readManifest = require('vscode-read-manifest');

// Async
(async () => {
    let manifest = await readManifest('ms-python.python');
})();

// Sync
let manifest = readManifest.sync('ms-python.python');
...