Недавно я обнаружил, что пишу несколько интерфейсов командной строки для своих клиентов, чтобы автоматизировать задачи, каждый раз, когда я начинал с поиска пакета на npmjs.org, который инкапсулировал поведение, которое мы все знаем из таких пакетов, как babel, для разрешения конфигурации пользователей.
Перенесемся вперед, и вы уже догадались, я не нашел для него подходящего пакета. Поэтому я и начал писать find-config-up. Babel, eslint, stylelint, prettier и многие другие — все эти пакеты имеют одну общую черту: они позволяют пользователю указать конфигурацию либо в файле dot-rc, либо в файле package.json с пользовательским свойством.
find-config-up именно это и сделает, у него простой API и поддержка промисов из коробки, так что вы можете использовать его в сочетании с синтаксисом async/await.
С приведенной выше конфигурацией пакет будет…
- … найдите файл .myfancyrc, прочитайте/разберите его как JSON и объедините его со значениями по умолчанию.
- Если в дереве не было найдено .myfancyrc, он будет искать package.json с определенным свойством my-fancy-package.
- Если ничего из вышеперечисленного не сработало, в качестве запасного варианта будут возвращены значения по умолчанию.
Этот пакет не является большим или умопомрачительным произведением искусства, он выполняет простую задачу (разрешить и объединить конфигурацию пользовательской среды), поэтому вы можете сосредоточиться на написании действительно важного кода!
Если вы хотите добавить функцию (-запрос) или оставить отзыв, я буду очень рад услышать от вас на GitHub, открыв вопрос.