#javascript #node.js #path #es6-modules
Вопрос:
При работе с ESM довольно много рекомендаций по загрузке файла json, используя import.meta.url
, как показано ниже
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, "../"))
);
Ответ №1:
Вместо применения path.resolve
к import.meta.url
, вы должны указать относительный путь в качестве первого параметра, например, как показано ниже
const result = fs.readFileSync(
new URL("../abc.json", import.meta.url)
);