19

В чем разница между Bower и npm?

14

Какова основная разница между bower и npm? Хочу получить простой и понятный ответ. Я заметил, что некоторые из моих коллег используют bower и npm взаимозаменяемо в своих проектах.

2 ответ(ов)

0

Вот полезное объяснение, найденное на http://ng-learn.org/2013/11/Bower-vs-npm/

С одной стороны, npm был создан для установки модулей, используемых в среде node.js, или для инструментов разработки, построенных на node.js, таких как Karma, линтеры, минификаторы и так далее. npm может устанавливать модули локально в проекте (по умолчанию в папку node_modules) или глобально, чтобы их могли использовать несколько проектов. В крупных проектах зависимости обычно указываются в файле package.json, который содержит список зависимостей. Этот список распознается npm, когда вы запускаете команду npm install, что затем загружает и устанавливает их за вас.

С другой стороны, bower был создан для управления зависимостями на фронтенде. Библиотеки, такие как jQuery, AngularJS, Underscore и т. д. Подобно npm, он имеет файл, в котором можно указать список зависимостей, называемый bower.json. В этом случае ваши фронтенд-зависимости устанавливаются с помощью команды bower install, которая по умолчанию устанавливает их в папку bower_components.

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

0

Для многих людей, работающих с Node.js, одним из основных преимуществ Bower является управление зависимостями, которые вовсе не являются JavaScript. Если разработчики используют языки, которые компилируются в JavaScript, они могут использовать npm для управления некоторыми из своих зависимостей. Однако не все их зависимости будут модулями Node.js. Некоторые из них, которые компилируются в JavaScript, могут иметь специфические искажения исходного языка, что делает передачу их в скомпилированном виде не самым элегантным вариантом, особенно когда пользователи ожидают увидеть исходный код.

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

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь