Comments 29
Ну неужели наконец-то вменяемый способ получить Jade в браузере?
Не нашел беглым в взглядом в доках, там есть debug — режим, как в browserify. Т.е чтобы файрбаг показывал ошибки в оригинальных файлах при отладке.
Я так понимаю что он только парсит страницы на предмет require? Можно ли явно ему задавать список файлов и директорий что нужно включить в bundle?
У меня есть в коде например, что то типа такого
я решил это просто руками указав все что мне нужно (find + grep + аккуратное именования серверной части и клиентской).
У меня есть в коде например, что то типа такого
var a = '../routes';
return require(a);
я решил это просто руками указав все что мне нужно (find + grep + аккуратное именования серверной части и клиентской).
Он не «просто парсит страницы», он смотрит в сгенерированный AST кода на предмет наличия лексемы
Нет, такого мы не поддерживаем, просто в моем стиле кода это не используется. Кстати — профит-то в чем?
Для списка файлов и директорий clinch вряд ли подойдет — основная фишка как раз и была в нативной поддержке vanilla CommonJS из коробки, бо mocha.
require
.У меня есть в коде например, что то типа такого
Нет, такого мы не поддерживаем, просто в моем стиле кода это не используется. Кстати — профит-то в чем?
Для списка файлов и директорий clinch вряд ли подойдет — основная фишка как раз и была в нативной поддержке vanilla CommonJS из коробки, бо mocha.
Кстати — профит-то в чем?
Так у меня определяются контроллеры, чтобы явно их не поключать они загружаются во время загрузки и подключаются по своим route'ам.
А можно у вас делать синонимы (н-р везде подменить underscore на lodash)? А как включить jquery в бандл (именно клиентский вариант а не тот что в npm)?
они загружаются во время загрузки
Может быть в вашем смысле это чем-то оправдано, но в общем случае динамический require — это ммм… плохая идея.
Во-первых он очень синхронный — там куча всего под капотом происходит с суффиком Sync.
Во-вторых, потому что что-то надо было что-то делать с во-первых — он кеширует все вещи, которые были запрошены, в результате фактически в экземпляре процесса висят все штуки, которые были разрешены.
ИМХО лучшее, что тут можно сделать — сделать контейнер, который будет статически рекверить все, и отдавать отдельные элементы по имени. И подключить этот контейнер в код.
А можно у вас делать синонимы
Надеюсь что понял вопрос верно — да, можно, в конфиге пака есть ключ
replacement
, он как раз для таких вещей, но тут есть вопрос идеологии, о нем вот ниже.А как включить jquery в бандл
Как бы идеологически использованиеи именно бандлов, а не какого-то app связано с тем, что clinch скорее аналог component, в том смысле что с его помощью можно делать маленькие виджеты, или кучу разных мелких хелперов. Если надо завернуть целый app — тут overhead не так страшен.
Поэтому немного неверно включать большие либы в бандл, их можно грузить отдельно, или, что правильнее — брать из CDN, а в бандле делать «пустышку», типа такой.
###
This is lodash shim
###
module.exports = @_
Может быть в вашем смысле это чем-то оправдано, но в общем случае динамический require — это ммм… плохая идея.
Во-первых он очень синхронный — там куча всего под капотом происходит с суффиком Sync.
Да я и не утверждаю, что это хорошая идея. Поэтому у меня это и используется только во время загрузки — один раз.
Как бы идеологически использованиеи именно бандлов, а не какого-то app связано с тем, что clinch скорее аналог component, в том смысле что с его помощью можно делать маленькие виджеты, или кучу разных мелких хелперов. Если надо завернуть целый app — тут overhead не так страшен.
Поэтому немного неверно включать большие либы в бандл, их можно грузить отдельно, или, что правильнее — брать из CDN, а в бандле делать «пустышку», типа такой.
Да думаю скорее всего тут вы правы.
ИМХО лучшее, что тут можно сделать — сделать контейнер, который будет статически рекверить все, и отдавать отдельные элементы по имени. И подключить этот контейнер в код.
Разумная идея — надо будет попробовать.
Контейнер примерно так выглядит — di_container.coffee.
Правда это навороченный вариант, с само-разрешением зависимостей, но идея именно такая.
Правда это навороченный вариант, с само-разрешением зависимостей, но идея именно такая.
А сложно ли прикручивать свои шаблонизаторы? Мне интересно dust и handlebars.
Посмотрел повнимательнее — Handlebars — вроде бы несложно, возможно добавлю в поддерживаемые шаблонизаторы.
С dust как-то мутновато, там идея немного не по формату такой компиляции, так что пока фик знает.
С dust как-то мутновато, там идея немного не по формату такой компиляции, так что пока фик знает.
Ну все равно спасибо — на выходных посмотрю на вашу разработку внимательнее.
Good news for everyone! ©
API для сторонних обработчиков будет, постараюсь сегодня выкатить до вечера.
С примером как прикручивается Handlebars.
API для сторонних обработчиков будет, постараюсь сегодня выкатить до вечера.
С примером как прикручивается Handlebars.
Хм. Итожя:
Как и грозился — API кастом-процессоров теперь есть.
Неожидано — Handlebars не будет, авторы перемудрили с предкомпиляцией и я его прикрутить тупо не смог :)
Хотя, может у кого-то с API теперь и получится.
Как и грозился — API кастом-процессоров теперь есть.
Неожидано — Handlebars не будет, авторы перемудрили с предкомпиляцией и я его прикрутить тупо не смог :)
Хотя, может у кого-то с API теперь и получится.
И в конце концов справедливость восторжествовала — how to use Handlebars with clinch.
Надеюсь окажется полезным и мой спам еще не задолбал :)
Надеюсь окажется полезным и мой спам еще не задолбал :)
У меня еще такой вопрос появился — может вы с ним тоже встречались.
Я запихиваю backbone в бандл как зависимость — у него по факту 2 зависимости: underscore и jquery. _ он подключает через require, а $ пробует взять из глобального объекта через this.jQuery, но внутри модуля this это тот же объект что и module.exports — то есть backbone в бандле не может найти jquery потому что выполняется не в констекте глобального объекта. Вы решали такую задачу?
Я запихиваю backbone в бандл как зависимость — у него по факту 2 зависимости: underscore и jquery. _ он подключает через require, а $ пробует взять из глобального объекта через this.jQuery, но внутри модуля this это тот же объект что и module.exports — то есть backbone в бандле не может найти jquery потому что выполняется не в констекте глобального объекта. Вы решали такую задачу?
Странно, на живой пример можно посмотреть?
Вообще-то код модуля вызывается в контексте глобали, т.е. this.jQuery должен найтись, если он в глобали есть.
Пруфф — здесь и ниже.
Иначе пустышка бы из примера выше не сработала бы.
Ну, т.е. надо до бандла просто подгрузить на страницу jQuery и все должно сработать.
Вообще-то код модуля вызывается в контексте глобали, т.е. this.jQuery должен найтись, если он в глобали есть.
Пруфф — здесь и ниже.
Иначе пустышка бы из примера выше не сработала бы.
Ну, т.е. надо до бандла просто подгрузить на страницу jQuery и все должно сработать.
Ну это не совсем пруф — это у вас так реализовано (впринципе мне кажется что так разумнее — хотя и не так как в node). Просто в node немного не так и поэтому я и спрашиваю:
mac:pipedream den$ node test.js
true
false
mac:pipedream den$ cat test.js
console.log(this === module.exports);
console.log(this === module);
Извиняюсь я плохо выразился. Я имел в виду, что не с clitch а например в browserbuild или в само node.
Sign up to leave a comment.
Простой упаковщик CommonJS модулей для использования в браузере — clinch