在Visual Studio代码扩展中,有没有办法在运行时获取扩展的设置(在package.json中定义)?我想得到一些值(如displayName)。
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-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');