2016-12-09 4 views
3

У меня есть веб-приложение React-webpack (только на стороне клиента - нет сервера API), и он убирал файл package.json, и мне пришло в голову, что все зависимостей являются зависимостями dev, поскольку вы не запускаете React веб-приложение в производстве - вы его создаете и распространяете встроенные файлы.Правильно ли думать, что все зависимости в веб-приложении React-webpack package.json являются зависимыми от разработчиков?

Это право?

+0

Пришлось перечитать это несколько раз. Мне удалось задуматься, и мое первоначальное ощущение в том, что я согласен с вами в контексте простого приложения. – Pineda

+0

Извиняется, если этот вопрос звучит немного похоже на поток сознательности! – cubabit

ответ

1

Реакция и, возможно, ReactDOM будут зависимыми. Любые дополнительные библиотеки, которые вы используете, которые отображаются на странице, также будут зависимыми (пример: react-autosuggest). Все остальное, как правило, было бы devDependency.

На данный момент нет большого консенсуса (см., Например, this webpack issue). Некоторые люди хотят делать все как зависимость, другие - как devDependency, я уверен, что вы могли бы сделать случай для связанных зависимостей и т. Д. Решение, описанное выше, является лучшей практикой, которая, кажется, работает хорошо. Например, если вы используете диапазон версий в пакете, вам, вероятно, не понравится изменение версии для мелкой/патчей в webpack, eslint, karma, mocha и т. Д. Вы наверняка заботитесь даже об изменении уровня патча на что-то вроде реагировать, поэтому он разделяется на гораздо более короткий список зависимостей. (Рассматривая один проект, кажется, что разница между зависимостью и devDependency составляет 4-5 раз. Гораздо проще выявить значимые изменения, если вы вложите их в дерево зависимостей.)

Связанный: пряжа takes the approach Я изложена выше.

+0

Но будет ли проведенный проект каким-либо образом использовать, если я сделал «npm i -производство»? – cubabit

+1

Любые библиотеки-утилиты попадают в _dependencies_, а также, например, 'Lodash' –

+0

. Нет причин для' npm i -production' этого проекта, потому что это приложение для реагирования верхнего уровня. Вероятно, это конец вашей цепи зависимости npm, если вы не делаете что-то чрезвычайно творческое. –

Смежные вопросы