javascript - import.meta.url 的相对路径

标签 javascript node.js path es6-modules

在使用 ESM 时,很多建议使用 import.meta.url 加载 json 文件,如下所示

import fs from 'fs';
const result = fs.readFileSync(
  new URL("abc.json", import.meta.url)
);

现在以上工作正常,但假设 abc.json 与脚本位置位于同一目录中。我想知道诸如 abc.json 之类的脚本的相对路径位于目录的上一级。我在下面尝试过,但它不起作用

import fs from "fs";
import path from "path";

const result = fs.readFileSync(
  new URL("abc.json", path.resolve(import.meta.url, "../"))
);

最佳答案

而不是将 path.resolve 应用于 import.meta.url,您应该将相对路径指定为第一个参数,如下所示

const result = fs.readFileSync(
  new URL("../abc.json", import.meta.url)
);

关于javascript - import.meta.url 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69355617/

相关文章:

javascript - 如何对繁重的 JavaScript Web 应用程序进行性能分析?

javascript - 在 Microsoft 平板电脑/触摸屏显示器上使用 mozilla firefox 禁用默认捏合缩放

javascript - 如何在没有文本字段的情况下使用 JavaScript 调用 android 键盘?

javascript - 在 onFetch (BIRT) 中使用行对象

linux - 如果某些所需文件是不同的目录,我如何在任何地方执行命令?

apache - 在 Apache Web 服务器上抛出大量 node.js GET 请求时服务器端 CPU 使用率低

javascript - 嵌套 ES6 代理未按预期工作

node.js - Mongoose 条件查询 - Case when like 语句

url - 网站元文件的新 url 路径前缀的名称是什么?

c# - 为什么这个无效的文件路径//有效?