有没有办法在运行时获取扩展的设置(在package.json中定义)?

问题描述 投票:1回答:1

在Visual Studio代码扩展中,有没有办法在运行时获取扩展的设置(在package.json中定义)?我想得到一些值(如displayName)。

javascript node.js visual-studio-code vscode-extensions
1个回答
3
投票

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。使用vscode-read-manifestread-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');
© www.soinside.com 2019 - 2024. All rights reserved.