Ecosystem
Module:
- AMD/Require.js
- Common.js
NPM
NPM - централизованное хранилище модулей, решает проблему управления зависимостями
Semantic versioning (соглашение, можно нарушать пока версия пакета 0)
МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ
- возможно нарушение обратных совместимостей
- появляется новое, не нарушая обратной совместимости
- делается багфиксинг с сохранением обратных совместимостей
< <= > >= =
*
^ нельзя изменять первую ненулевую цифру
~ патчи
npm i
npm outdated
npm update
Хорошо, как например в php есть composer.lock, так и у нас появился yarn.lock - гарантирует, что у всех установится один и тот же пакет (содержит хеши коммитов)
Основная проблемма - никем не модерируется.
Bower
Максимально плоское дерево зависимостей.
Сборка проекта
- concat js-files in order (пока еще времена http2 не пришли, а у http ограничение на количество одновременно закачиваемых файлов)
- minification
- images
Любой проект должен запускаться с помощью команды npm start, и теститься npm test
В npm скриптах команды - это выполнение бинарников пакетов из node_modules.
Есть зарезервированные команды типа prepublish.
Grunt, Gulp - taskrunners (для сборки проекта)
Webpack - module bundler (шерстит проект и собирает папку)
playlist Kantor
book