VS Code 扩展代码找不到 JSON 路径
VS Code extension code unable to find JSON path
我正在尝试创建一个需要(或导入 ;))从本地 JSON 文件读取数据的 vs 代码扩展。我将 JSON 保存在根文件夹中(与我的 extension.js
、package.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.json
与 extension.js
放在 相同的目录 中,因为 __dirname
是当前正在执行脚本。
我正在尝试创建一个需要(或导入 ;))从本地 JSON 文件读取数据的 vs 代码扩展。我将 JSON 保存在根文件夹中(与我的 extension.js
、package.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.json
与 extension.js
放在 相同的目录 中,因为 __dirname
是当前正在执行脚本。