Эта статья предназначена для тех, кто не очень дружит с Node.js, но хочет использовать приложения вроде Grunt, Gulp и тому подобные. Процесс работы с этими приложениями подразумевает редактирование файла package.json и использование команд npm, так что понимание принципов работы npm поможет вам справиться с трудностями.Читать полностью »
Рубрика «npm» - 10
npm для простых смертных
2014-11-16 в 12:45, admin, рубрики: javascript, node.js, npm, Веб-разработкаПривет, друзья!
Я просто хотел поделиться с вами своей визуализацией зависимостей пакетов на npm'e. Выглядит это так:
Вы ему говорите имя пакета, он вам в ответ весь граф зависимостей. Затем можно проанализировать кто поддерживает пакеты и какие есть лицензии в графе.
Все исходники доступны здесь: github.com/anvaka/npmgraph.an
Рабочая версия сайта здесь: npm.anvaka.com/#/
Увы, Internet Explorer пока не поддерживается, но планирую отловить своих насекомых и починить его в ближайшем будущем.
NPM 2.0.0 & передача аргументов в run-script
2014-07-23 в 11:45, admin, рубрики: github, javascript, node.js, npm 22 июля случилось небольшое, но знаментаельное событие: был принят пулл-реквест, что добавлял поддержку передачи произвольных аргументов в ваши npm script'ы. Уже появился альфа-релиз npm весрии 2.0.0, что включает эту возможность.
Читать полностью »
Немного о npm-scripts
2014-07-23 в 10:48, admin, рубрики: github, javascript, node.js, nodejs, npm, вы наверное шутите мистер Шлютер, пасхальные яйцаЕсли кто не знаком с предметной областью, то NPM — node package manager (аналог bundler/composer/easy_install/nuget) – средство для управления зависимостями в вашем Node.js проекте, что по совместительсву может выполнять некоторое количество полезных функций. Написан Айзеком Шлютером, что его достаточно радикальным образом продвигал в начале своей истории (рассылая всем существующим Node.js проектам пулл-реквесты с добавлением package.json — манифестом зависимостей).
Все нижеприведенные вещи известны многим, но для некоторых это может стать приятным открытием, что сэкономит некоторое количество набираемых в символов.
Читать полностью »
Наследование HTML файлов в xslt-стиле
2014-04-29 в 4:53, admin, рубрики: grunt, html, node.js, nodejs, npm, наследование, шаблонизация, метки: grunt, html, nodejs, npm, наследование, шаблонизацияПроблема
Однажды, в ходе переписывания большого проекта, возникла необходимость улучшить механизм кастомизации html шаблонов под разные версии нашего web-приложения. В старой версии кастомизация выглядела подобным образом:
{{if app.version==versions.main}}
<!--один html код-->
{{else if app.version==versions.custom1}}
<!--другой html код-->
{{else if app.version==versions.custom2}}
<!--и ещё html код-->
{{endif}}
И подобной лапшой был пронизан весь проект. Такой код сложно поддерживать и изменять, при активном использовании шаблоны превращаются в непонятную кашу, где бизнес логика отображения отдельных блоков переплетается с кастомизацией под разные версии.
Привыкнув к удобным методам управления версиями приложения с помощью инъекции зависимостей, когда в зависимости от версии используются разные реализации интерфейсов, я решил изобрести свой велосипед для XSLT-подобного управления версиями html файлов: grunt-html-inheritance. Он позволяет подменять кусочки базового html-файла с помощью маленьких патчей.
Читать полностью »
Пишем генератор для Yeoman.io. Часть первая
2014-03-03 в 18:19, admin, рубрики: javascript, node.js, nodejs, npm, yeoman, метки: javascript, nodejs, npm, yeoman Доброго времени суток, читатели! В этом цикле статей я хочу описать опыт создания генератора для scaffolding системы Yeoman. Прежде всего, я был немного удивлён тем, что данная система и работа с ней не были описаны на хабре, разве что одно маленькое упоминание из далекого 2012 года: Yeoman.io. Как я уже написал выше, в данном цикле статей я буду рассматривать поэтапное создание yeoman-генератора для ваших проектов.
Читать полностью »
Несколько полезностей по работе с NPM
2013-12-19 в 16:00, admin, рубрики: javascript, node.js, nodejs, npm, tips, Веб-разработка, метки: nodejs, npm, tips
Установка пакетов
Все знают
# Устанавливает пакет express
npm install express
Какие варианты еще есть?
yo n — быстрое начало для нового node.js проекта
2013-12-12 в 5:00, admin, рубрики: github, javascript, node.js, npm, метки: github, javascript, node.js, npmПривет, Друзья!
Я просто хотел поделиться с вами простым проектом, который, надеюсь, поможет сохранить несколько минут при создании очередного node.js пакета. Вот все, что сделает проект, после набора в командной строке yo n
:
1. Запустит «npm init»
2. На основе ваших ответов из package.json, создаст файл с лицензией, readme, начальный файл и включит тестовый фреймворк.
3. Создаст и опубликует проект на GitHub'e.
А вот и видео всего описанного выше в действии:
Исходники на гитхабе: github.com/anvaka/generator-n
Особенности npm и хранение node_modules в git
2013-07-01 в 9:16, admin, рубрики: Git, javascript, node.js, npm, web-разработка, Веб-разработка
Для управления зависимостями в проекте, node.js, как и многие другие платформы, предоставляет собственный пакетный менеджер — npm. И несмотря на то, что он внешне похож, например, на Ruby Gems, и вроде бы выполняет те же самые функции, npm обладает некоторыми особенностями, которые стоит учитывать при разработке приложений на node.js. Одна из таких особенностей — это способ хранения директории node_modules в проекте. Многие, по аналогии с другими системами, оставляют в проекте только package.json с зафиксированными версиями модулей, а node_modules добавляют в .gitignore. Такая стратегия не всегда верна, если мы обратимся в FAQ на npmjs.org, то увидим там следующее:
Q: Стоит ли хранить node_modules в git?
A: Mikeal Rogers очень хорошо ответил на этот вопрос:
http://www.mikealrogers.com/posts/nodemodules-in-git.html
tl;dr
- Храните node_modules в git для проектов, которые требуется разворачивать, таких как вебсайты и приложения.
- Добавляйте node_modules в .gitignore для библиотек и повторно используемых модулей.
- Используйте npm для управления зависимостями в dev окружении, но не в скриптах используемых для деплоя.
Под катом перевод статьи Mikeal Rogers, в котором подробно описывается, с чем связан такой непривычный подход.
Читать полностью »
Развиваем фронтенд Дневник.ру. Часть первая. Сборка и проверка JavaScript кода
2013-05-28 в 15:04, admin, рубрики: couchdb, grunt, javascript, node.js, npm, windows, Блог компании «Дневник.ру», дневник.ру, метки: couchdb, grunt, javascript, node.js, npm, windows, дневник.руВступление
За время существования Дневник.ру (а это более 4-х лет) скопился огромный объем JavaScript кода: часть находилась в отдельном проекте в виде подключаемых файлов, часть определялась прямо на разметке контролов, а часть собиралась прямо в code-behind при помощи StringBuilder. К этому прибавлялись:
- растущее количество HTTP запросов для получения статичного контента – так, например, на всех страницах только в теге <head> загружалось 11 JavaScript файлов;
- глобальные переменные, которые иногда перекрывали друг друга;
Решив, что с этим пора что-то делать, мы поставили себе первоочередную задачу: вынести все подключаемые по отдельности файлы из тега в один минифицированный пакет. При этом код делился на сторонний и «наш», который планировалось проверять каким-то синтаксическим анализатором.
В этой статье мы расскажем вам о том, как решили эту задачу, и, разумеется, не умолчим о проблемах, с которыми при этом столкнулись.
Читать полностью »