В чем разница между package.json и bower.json?
каковы критерии, которые мы должны учитывать перед определением зависимостей в обоих файлах.
И какая разница, если запустить «bower install» и «npm install»?
В чем разница между package.json и bower.json?
каковы критерии, которые мы должны учитывать перед определением зависимостей в обоих файлах.
И какая разница, если запустить «bower install» и «npm install»?
NPM (package.json)
npm чаще всего используется для управления модулями Node.js, но он работает и для внешнего интерфейса в сочетании с Browserify и/или дедупликацией $ npm.
Бауэр (bower.json)
Bower создан исключительно для внешнего интерфейса и оптимизирован с учетом этого. Самая большая разница заключается в том, что npm использует вложенное дерево зависимостей (большой размер), в то время как Bower требует плоского дерева зависимостей (возлагает бремя разрешения зависимостей на пользователя).
Вложенное дерево зависимостей означает, что ваши зависимости могут иметь свои собственные зависимости, которые могут иметь свои собственные, и так далее. Это действительно здорово на сервере, где вам не нужно особо заботиться о пространстве и задержке. Это позволяет вам не заботиться о конфликтах зависимостей, поскольку все ваши зависимости используют, например. их собственная версия Underscore. Это явно не так хорошо работает на фронтенде. Представьте, что сайту необходимо загрузить три копии jQuery.
Короче говоря, NPM стремится к стабильности. Bower стремится к минимальной нагрузке на ресурсы. Если вы нарисуете структуру зависимостей.
Зависимости npm определяются или добавляются в package.json. Зависимости Bower находятся в файле bower.json.
** Файл Package.json предназначен для диспетчера пакетов, связанного с узлом, в то время как Bower может управлять зависимостями пакетов на уровне приложения. Мне больше нравится Бауэр.
** Нам нужно найти, какие зависимости относятся к разработке, а какие к производству.
** «bower install» — установить все зависимости, упомянутые в объекте «Зависимости». ** "bower install -D" -- установить все зависимости, упомянутые в объекте DevDependencies.
То же самое с Npm Install и npm install -D