Closed monolithed closed 11 years ago
Есть примеры проектов, которые grunt-cli атачат к себе сабмодулем? Он должен быть установлен в системе глобально. Одного сабмодуля недостаточно, необходимо выполнять cd grunt-cli && npm install
.
В общем случае npm install -g grunt-cli
вообще не выполняется (уже установлен у разработчика), необходимо одиножды выполнить npm install
и все. Куда проще то?
> Есть примеры проектов, которые grunt-cli атачат к себе сабмодулем?
Полно, поиск первым выдал: https://github.com/lanceharper/ember-table/tree/512b174b4c3e7688b71982e290b638757ad8c139/node_modules/grunt-cli (хотя явно .gitmodules
они не используют, видимо не знают что так можно)
Во первых, я предлгаю сделать утановку grunt
опциональным (если в нашем случае такое возможно), т.к. не всем он нужен глобально. И подержать как опциональный параметр в cli
Во вторых, если grunt
не может работать из хомяка, то почему же не сделать так:
"preinstall": "git submodule update --init --recursive && sudo npm install -g grunt sax"
Я это к тому что установка должна быть гибкой и простой, а не ультимативной
Увы, но пример не показателен: grunt не сабмодуль, и вообще иерархия node_modules в репе хранится, это bad practice.
Саш, grunt
итак необязателен – его необходимо ставить, если ты хочешь контрибьютить в fest
. Ты же не будешь спорить с тем, что тесты должны быть написаны на Jasmine?
PS. Установка fest
: npn install fest
(так написано в readme).
Я буду, почему на Jasmine? (просто интересуюсь)
2013/3/18 Anton Eprev notifications@github.com
Увы, но пример не показателен: grunt не сабмодуль, и вообще иерархия node_modules в репе хранится, это bad practice.
Саш, grunt итак необязателен - его необходимо ставить, если ты хочешь контрибьютить в fest. Ты же не будешь спорить с тем, что тесты должны быть написаны на Jasmine?
Reply to this email directly or view it on GitHubhttps://github.com/mailru/fest/issues/61#issuecomment-15054927 .
И больше не пишите мне, занят я!
Jasmine прост и выразителен. А mocha тянет за собой библиотеку ассершенов. Vows уже был к тому времени.
Jasmine убог и избыточен
Это не аргумент :-)
Jasmine это наследие JSUnit, сравни с QUnit, что может быть проще (правда мне не он тоже не всем нравится, поэтому я написал свой :yum:, но тем не менее )?
óÐÁÓÉÂÏ, ÐÒÏÄÏÌÖÁÊÔÅ ÂÏÄÁÔØÓÑ.
On Mon, Mar 18, 2013 at 5:46 PM, Anton Eprev notifications@github.comwrote:
üÔÏ ÎÅ ÁÒÇÕÍÅÎÔ :-)
Reply to this email directly or view it on GitHubhttps://github.com/mailru/fest/issues/61#issuecomment-15055316 .
é ÂÏÌØÛÅ ÎÅ ÐÉÛÉÔÅ ÍÎÅ, ÚÁÎÑÔ Ñ!
A почему npm_modules
это bad practicies?
А зачем хранить unmaintained код в репозитории?
Вот у меня есть несколько проектов, каждый из них использует десятки npm-зависимостей, если это вывалится в npm list, я не очень буду этому рад, т.к. придется постоянно вспонимать где эти модули используются, нужно ли их обновлять и т.д.
А так у меня есть папка в которой всегда лежит только то, что мне нужно для конкретного проекта и я эти модули обновляю по мере необходимости
Сумин, вообще не хотел стороннюю библиотеку для тестирования. А Jasmine прост, и не составит труда сделать свою реализацию, сохранив его API.
Так как npm ставит локально, то в глобальный npm list ничего не попадет от проектов.
Нафига такое API? toBeNull, toBeTruthy, toBeFalsy, toEqual, toBeDefined и пр. Нафига там десятки методов?
У меня был случай когда я использовал сторонную либу, исходники которой потом пропали вместе с ее автором :jack_o_lantern:
Посмотри http://chaijs.com ;-)
В интернете ничего не пропадает!
expect(undefined).to.not.be.ok;
жут какая ;)
Я знал, что тебе понравится :-)
Мне во всех этих либах не нравится, то что они активно используют глобальные переменные. В своей либе я создаю объект:
var unit = new Suitest;
unit
.test('test 1', function(unit) {
unit.exec(true, 1)
.done();
});
.test('test 2', function() {
this.exec(true, 2)
.done();
});
Так можно получить время работы как отдельного теста, так и всего модуля. Есть конечно пара моментов, которые нужно поправить и упростить, но пока нет на это нет времени (
Ну что тогда закрывать таск?
Окей.
Вместо:
Вариант:
Писать:
Для этого нужно лишь добавить:
.gitmodules
Обновляем потом так:
Или так ( git 1.7.3+):
Опционально:
package.json
.configure