18 сен 2018

Вы можете посмотреть бесплатное короткое 4:05 минутное видео следующего содержания, размещенное на egghead.io.

Исторически команда npm init использовалась исключительно для создания нового package.json файла. Однако, начиная с версии 6.1.0, вы можете использовать новую функцию npm init, которая называется <initializer>. Предоставленный вами инициализатор определит, как будет построено ваше новое приложение. npm добавит create- к имени предоставленного вами инициализатора и будет использовать npx для временной установки и выполнения этого проекта.

3 способа create-react-app с npm

В зависимости от того, какую версию npm вы установили, существуют различные способы взаимодействия с пакетами npm. Чтобы увидеть эти различия, давайте сосредоточимся на взаимодействии с пакетом create-react-app для начальной загрузки приложения React.

1. npm <= 5.1.0

Если у вас более старая версия npm (меньше или равна 5.1.0), у вас не так много вариантов при использовании create-react-app. Вы в основном ограничены глобальной установкой creat-react-app, а затем использованием его для начальной загрузки вашего приложения.

npm install create-react-app -g create-react-app playground

Вышеупомянутое глобально установит create-react-app из реестра npm, а затем использует глобальный пакет для начальной загрузки приложения.

Плюсы

  • Это будет работать с любой версией npm
  • После установки вам не нужно переустанавливать

Минусы

  • Версия create-react-app может устареть

2. npm >= 5.2.0

Если у вас есть версия npm, равная или выше 5.2.0, вы можете использовать инструмент npx, который поставляется вместе с npm.

npx (среди прочего) временно установит пакет, если он еще не установлен глобально. Это замечательно, если вы хотите поэкспериментировать с пакетом или, если вы запускаете его так редко, у вас всегда будет последняя версия.

npx create-react-app playground

Приведенный выше фрагмент временно установит create-react-app из npm реестра, а затем выполнит его для начальной загрузки приложения.

Плюсы

  • У тебя всегда последняя версия
  • Вам не нужно устанавливать пакет глобально

Минусы

  • Это не так быстро, как использование глобально установленного пакета.

3. npm >= 6.1.0

Наконец, если у вас установлена ​​последняя версия npm (версия 6.1.0 или выше), у вас есть новейший способ инициализировать приложение. Команда npm init существует уже много лет, но с 6.1.0 появилась новая <initializer> опция, позволяющая npm знать, что вы хотите использовать ее для создания или обновления своего приложения.

Под оболочкой npm добавит create- к предоставленному вами инициализатору, а затем установит и выполнит его с помощью инструмента npx (как мы обсуждали выше).

npm init react-app playground

Приведенный выше фрагмент кода найдет create-react-app в реестре npm, а затем установит и выполнит его с npx для начальной загрузки приложения.

Плюсы

  • Это семантически, поскольку вы инициализируете проект.
  • Это на несколько символов короче, чем прямой вызов npx
  • У тебя всегда последняя версия
  • Вам не нужно устанавливать пакет глобально

Минусы

  • Это не так быстро, как использование глобально установленного пакета.

Другое create-<initializers>

Выше мы рассмотрели create-react-app в качестве примера, но есть много других инициализаторов, которые вы также можете использовать, например…

  • create-deck - Создание презентаций mdx-deck
  • create-component-app - Инструмент для генерации различных типов компонентов React из терминала. 💻
  • create-hintrc - 💡 Система подсказок для Интернета https://webhint.io/
  • create-esm - Создать esm включенных пакетов

Какой ваш любимый инициализатор? Если вы используете тот, которого нет в приведенном выше списке, я хотел бы знать. Пожалуйста, дайте мне знать в Твиттере по адресу @elijahmanor!

Заключение

В зависимости от вашей версии вашего npm вы можете создавать проекты по-разному. Если у вас последняя версия, вы можете использовать все 3 из вышеперечисленных методов, включая новую опцию инициализатора.

Первоначально опубликовано на elijahmanor.com.