VS Code扩展代码无法找到JSON路径

时间:2018-07-15 18:51:38

标签: javascript visual-studio-code vscode-extensions

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

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

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

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

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

这是我的文件夹结构的样子

enter image description here

...这是扩展名中的代码

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(...)
}

帮助。

1 个答案:

答案 0 :(得分:2)

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

如果您真的想读取相同目录的文件,该如何使用fs.readFileSync(path.resolve(__dirname, "fieldIds.json"), "utf8")

以上代码段将读取与fieldIds.json放在相同目录上的extension.js,因为__dirname具有当前执行脚本的路径。