create-react-app install devDepencies в разделе зависимости

после создания нового проекта с create-react-app и под управлением yarn eject.

раздел зависимостей моего пакета.json выглядит так:

  "dependencies": {
    "autoprefixer": "7.1.1",
    "babel-core": "6.25.0",
    "babel-eslint": "7.2.3",
    "babel-jest": "20.0.3",
    "babel-loader": "7.0.0",
    "babel-preset-react-app": "^3.0.1",
    "babel-runtime": "6.23.0",
    etc.

Я бы сказал, что это все devDependencies почему create-react-app разместил их здесь?

2 ответов


это намеренное изменение в одной из последних версий.

различие довольно произвольно для интерфейсных приложений, которые производят статические пакеты. Технически вам не нужно любой этих зависимостей на сервере, даже не во время выполнения те. Так что по этой логике даже react может рассматриваться как зависимость развития.

мы пытались разделить их, но, как объяснялось выше, это не очень последовательно в первую очередь. Там нет технических причина, по которой это различие полезно для приложений, не имеющих Node runtime. Кроме того, он вызывал проблемы для некоторых развертываний Heroku, которые не устанавливали зависимости разработки (и, таким образом, не могли построить проект на сервере или протестировать его прямо перед развертыванием).

в конце концов мы пошли с просто положить все в зависимости. Если вы не согласны, вы всегда можете изменить package.json Как вы считаете разумным.


это все зависимости разработчика, если приложение, которое вы создаете, является библиотекой, которую вы хотите опубликовать для использования другими.

в основном мое понимание таково, если у вас есть модуль, который можно использовать двумя способами:

  • употреблять через npm i
  • разработан путем клонирования проекта

в этом случае имеет смысл поместить их в зависимости dev.

в вашем случае люди собираются клонировать ваш проект развивать. И потребляйте его через hosted one.

надеюсь, что это помогает.!