В чем разница между Bower и npm?
Какова основная разница между bower
и npm
? Хочу получить простой и понятный ответ. Я заметил, что некоторые из моих коллег используют bower
и npm
взаимозаменяемо в своих проектах.
2 ответ(ов)
Вот полезное объяснение, найденное на 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.
Как вы можете видеть, хотя они выполняют схожие задачи, они нацелены на очень разные наборы библиотек.
Для многих людей, работающих с Node.js, одним из основных преимуществ Bower является управление зависимостями, которые вовсе не являются JavaScript. Если разработчики используют языки, которые компилируются в JavaScript, они могут использовать npm для управления некоторыми из своих зависимостей. Однако не все их зависимости будут модулями Node.js. Некоторые из них, которые компилируются в JavaScript, могут иметь специфические искажения исходного языка, что делает передачу их в скомпилированном виде не самым элегантным вариантом, особенно когда пользователи ожидают увидеть исходный код.
Не все в npm-пакете должно быть ориентировано на JavaScript для конечных пользователей, но в случае npm-библиотек, как минимум, часть этого кода должна быть доступна.
Отправка аргументов командной строки в npm-скрипт
Где npm устанавливает пакеты?
Как вывести список установленных пакетов npm?
Как выполнить функцию JavaScript, имея её имя в виде строки
В чем разница между String.slice и String.substring?