Динамически требовать в NodeJS - PullRequest
0 голосов
/ 17 мая 2018

Я работаю над пакетом CLI внутри monorepo, в котором есть команда с именем buildX: Проходит через несколько каталогов, попробуйте require модуль, который существует в некоторых файлах с этими каталогами.

Так что в основном я попытаюсь сделать что-то вроде:

buildX --source ./somewhere --target ./somewhere/else 

И он должен выполнить некоторые операции с этими модулями где-нибудь и сохранить их в target.

Проблема: Если у меня есть:

* - somewhere
*   | - index.js
*
*somewhere else

Index.js:

import { coolFunction } from 'cool-library';

export default coolFunction({some: object, generated: dynamically })

При выполнении require('./somewhere/index.js') есть исключение: он не может найти модуль по указанному пути. Это связано с тем, что при выполнении __dirname путь, который появляется, - это путь, в котором хранится bin, а не тот, где он выполняется.

Как мне динамически требовать index.js? Я пробовал с SystemJS, также с eval, также с dynamic-import-support.

Я просто хочу иметь возможность выполнить экспорт по умолчанию для index.js.

Любые предложения или решения приветствуются! Заранее спасибо

1 Ответ

0 голосов
/ 18 мая 2018

Нашел решение на основе библиотеки ESLint .Имеется функция util, которая помогает импортировать файлы конфигурации на рейсе из текущей рабочей области вместо использования __dirname.

. Для проблем, которые могут возникнуть после успешного запроса, например, импорт ES6 или любая другая функцияне поддерживается версией вашего узла, вы можете использовать babel-register для сборки ваших модулей в полете вместо их предварительной сборки.

...