VS Code 扩展代码找不到 JSON 路径

VS Code extension code unable to find JSON path

我正在尝试创建一个需要(或导入 ;))从本地 JSON 文件读取数据的 vs 代码扩展。我将 JSON 保存在根文件夹中(与我的 extension.jspackage.json.gitignore 等所在的文件夹相同)。我的代码使用 fs 包来读取 JSON 文件,但是当我 运行 构造函数中的命令时,出现以下错误,

Error: ENOENT: no such file or directory, open 'fieldIds.json'

我在某处读到文件路径是相对于节点开始的文件夹的。当我 运行 我的 VS 代码时,我不确定从哪个文件夹节点开始。但是,如果我将我的 JSON 放在那个文件夹中,那么它应该工作吗?如何指定我只想从特定路径(例如,桌面?)运行 JSON。

我试图将我的 JSON 文件移动到与 VS Code 编辑器相同的文件夹 settings.json,但这也没有用。

/Users/<user>/Library/Application Support/Code/User

这是我的文件夹结构

...这是来自扩展的代码

const vscode = require('vscode')
const fs = require('fs')

function activate (context) {
  // 'fieldIds.json' not found    
  const json = fs.readFile('fieldIds.json', 'utf8', (res) => console.log(res))
  console.log(JSON.stringify(json))

  ...
  context.subscriptions.push(...)
}

求助。

您应该确保您的当前工作目录fieldIds.json所在的目录相同。因为fs模块最终会从当前工作目录中读取文件。

如果你真的想读取同一目录下的文件,可以考虑使用下面的代码:

const path = require('path')

...

fs.readFileSync(path.resolve(__dirname, "fieldIds.json"), "utf8")

上面的代码片段会找到 fieldIds.jsonextension.js 放在 相同的目录 中,因为 __dirname 是当前正在执行脚本。