Как я могу динамически загружать файл JSON внутри модуля ECMAScript?

Я делаю:

      let filePath = '../../data/my-file.json'
import inputArray from filePath assert { type: 'json' }

Вот результат, который я получаю:

      file:///.../script.mjs:5
import inputArray from filePath assert { type: 'json' }
                       ^^^^^^^^

SyntaxError: Unexpected identifier
    at ESMLoader.moduleStrategy (node:internal/modules/esm/translators:119:18)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:483:14)
    at async link (node:internal/modules/esm/module_job:67:21)

Это работает, если я статически импортирую файл JSON:

      import inputArray from './my-file.json' assert { type: 'json' }

Есть ли способ динамически импортировать файл JSON внутри модулей ECMAScript?

Почему это происходит?

Я использую Node.js версии v18.7.0.

1 ответ

Нашел способ:

      
let filePath = '../../data/my-file.json'

let arrayImport = await import(filePath, {
  assert: { type: "json" },
});
const inputArray = arrayImport.default 

console.log('result': inputArray)

Больше информации здесь: v8 — Dynamic import().

Другие вопросы по тегам