【问题标题】:Watch project dependencies using VSCode API使用 VSCode API 观察项目依赖
【发布时间】:2022-06-17 20:37:18
【问题描述】:
我正在编写一个 VSCode 扩展,我需要一种方法来了解项目何时获得新的依赖项以触发某些操作。为此,我决定使用“fs.watchFile”观看 package.json 文件。但问题是 fs 仅在保存文件后才能看到更改,并且需要一两秒钟。此外,如果用户手动向 package.json 添加新的依赖项,则在用户保存之前不会发生更改事件。我想知道 VSCode 是否有一些内部 API 会比 fs 做得更好。
【问题讨论】:
标签:
javascript
node.js
visual-studio-code
vscode-extensions
【解决方案1】:
VSCode 为 vscode.workspace.createFileSystemWatcher 提供了一个很好的实用程序。它比 fs 实现更好,因为它也会在文件在保存之前为“脏”时触发。可能的实现是:
const watcher = vscode.workspace.createFileSystemWatcher(
packageJsonPath, // absolute path to package.json
true, // ignore create events
false, // don't ignore change events
true, // ignore delete events
);
watcher.onDidChange(() => {
// trigger some action
})
// when not needed
if (watcher) {
watcher.dispose();
}