Как: репозиторий git с модулями NPM по умолчанию и его конфигурациями

#node.js #git #npm #config #code-standards

#node.js #git #npm #конфигурация #код-стандарты

Вопрос:

Я хотел бы иметь репозиторий с модулями NPM по умолчанию и его конфигурациями для всех будущих проектов NPM. На данный момент конфигурации состоят из tsconfig.json , tslint.json .prettierrc . Цель состоит в том, чтобы иметь простой способ создания нового проекта с пользовательскими настройками по умолчанию, а также иметь возможность изменять конфигурации для всех этих проектов из одного места.

Я попытался создать свой собственный модуль NPM, package.json содержащий зависимости, которые я хочу иметь во всех моих новых проектах, и его конфигурации в root. Проблема очевидна — если я установлю этот пакет в новый проект, модули (и конфигурации) будут ограничены моим пользовательским модулем, а не моим недавно созданным проектом.

У кого-нибудь есть идеи, как с этим справиться?

Ответ №1:

По сути, вы создаете шаблон. Разрабатывайте его, я вижу два возможных подхода:

  1. Опубликуйте шаблон как модуль NPM.
  2. Создайте и опубликуйте шаблон у вашего поставщика репозитория (Github, Bitbucket и т.д.) И используйте его в качестве начального проекта, который будет разветвляться для каждого нового проекта, который вы создаете.

Я предлагаю вам следовать второму подходу, которого легче достичь.

Вместо этого вы пытаетесь следовать первому подходу, который сложнее. Для создания начального проекта вам следует создать CLI (интерфейс командной строки). Итак, вы создадите модуль NPM, который должен быть установлен глобально и который вы будете использовать с набором команд, таких как:

 myawesomecli generate my-new-starting-project
  

И модуль myawesomecli сгенерирует папку my-new-starting-project, содержащую ваш шаблон. Вы могли бы дополнительно запросить у пользователя настройки, которые будут выбраны в интерактивном сеансе. Это то, что делает известный фреймворк, такой как React, Vue.js, Angular и т.д. Выполняют.
Вы можете следовать этому руководству, чтобы создать CLI, который генерирует шаблоны. Имейте в виду, что модуль inquier является ключевым модулем для таких областей.

Комментарии:

1. Спасибо за объяснение. Я понимаю, почему второй подход проще, но поскольку база стандартов кодирования будет варьироваться в зависимости от используемых фреймворков в разных вариантах использования, действительно кажется приятным создать наш собственный интерактивный генератор. Однако мне на ум пришел другой вариант; Мы создаем все наши приложения в Docker — это означает, что мы могли бы создавать наши собственные образы Docker, которые могли бы использоваться в качестве основы для каждого проекта. т. Е. мы могли бы расширить образ Node docker с помощью NextJS ( React) и всех инструментов и конфигураций, специфичных для этого типа проектов. Вам это кажется хорошим вариантом?

2. нет, это не так. Я имею в виду, что с образом Docker вы будете загружаться каждый раз, когда будете использовать docker. Но, даже если вы сейчас часто используете Docker (а вы должны, это потрясающе), вполне возможно, что вы перестанете использовать его в будущем. На мой взгляд, настроенный CLI выдержал бы изменения в технологиях развертывания / размещения

3. На самом деле это довольно хороший момент. Я об этом не подумал. Спасибо! 🙂