我正在尝试创建一个vs代码扩展,该扩展要求(或导入;))从本地JSON文件读取数据。我将JSON保留在根文件夹中(我的extension.js
,package.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
这是我的文件夹结构的样子
...这是扩展名中的代码
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(...)
}
帮助。
答案 0 :(得分:2)
您应确保您的当前工作目录与fieldIds.json
所在的位置相同。因为fs
模块最终会从当前工作目录中读取文件。
如果您真的想读取相同目录的文件,该如何使用fs.readFileSync(path.resolve(__dirname, "fieldIds.json"), "utf8")
?
以上代码段将读取与fieldIds.json
放在相同目录上的extension.js
,因为__dirname
具有当前执行脚本的路径。