Не удается загрузить локальные модули dir Node.js при использовании --input-type

В Node.js 12+ появилась новая опция командной строки --input-type для запуска скрипта внутри Bash heredoc. Однако он не может найти модули Node.js, установленные в./node_modules

Вот как я устанавливаю модуль:

cd test
npm i moment

И запустите Node.js со скриптом в heredoc:

cd test

#this works
node --experimental-modules --input-type module <<<"import fs from 'fs'"

#this doesn't
node --experimental-modules --input-type module <<<"import moment from 'moment'"

Даже при установке момента с глобальным параметром -g он все равно выдает ошибку ERR_MODULE_NOT_FOUND. Любые решения?

1 ответ

Решение

Как уже упоминалось в этом ответе: /questions/48870996/zapustite-kod-es6-v-terminale-bash-s-pomoschyu-bash-heredoc/48871031#48871031

В настоящее время нет способа загрузить модули в REPL Node.js (запустить 'node' с Bash heredoc), кроме таких встроенных модулей, как: fs, http и т. Д.

Таким образом, единственный обходной путь - это что-то подобное, например, модуль "момент":

#bash script
echo '//begin
import moment from "moment";
...
//end' >test.mjs

node --experimental-modules test.mjs
Другие вопросы по тегам