- PVSM.RU - https://www.pvsm.ru -
Если вы пользуетесь stitch [1] и вам его маловато, а browserify [2] показался сложноват по настройкам — попробуйте clinch [3].
Что в коробке:
.js
, .json
, .coffee
, .eco
, .jade
Основная фишка, которую я хотел решить — нативное использование CommonJS модулей, в том числе и зависимостей, устанавливаемых через npm. Понятно, что модули, использующие IO или имеющие C-биндинги работать не будут, но большой пласт простых модулей вполне можно перенести на клиента.
Вторая фишка — мне нравится разработка через тестирование, в идеале — весь клиентский код хорошо бы прогонять через mocha [4], в автоматизированном варианте.
Ну и приятные бонусы — разумное количество «обвязочного» кода, однозначное разрешение зависимостей, поддержка версий, исключение дубликатов, возможность иметь на странице любое количество бандлов.
На мой взгляд все идеи были вполне успешно реализованы.
Установка — локальная npm install clinch
.
Ну и простой пример использования:
#!/usr/bin/env coffee
Clinch = require 'clinch'
packer = new Clinch()
pack_config =
bundle :
main : "#{__dirname}/hello_world"
packer.buldPackage 'my_package', pack_config, (err, data) ->
console.log 'Builder, data: n', data
для 'hello_world.coffee', содержащего
module.exports =
hello_world : -> 'Hello World!'
на выходе даст примерно такой результат
(function() {
<... skip clinch header ...>
dependencies = {};
sources = {
"2377150448": function(exports, module, require) {
module.exports = {
hello_world: function() {
return 'Hello World!';
}
};
}};
this.my_package = {
"main": require(2377150448)};
}).call(this);
И в браузере функция будет доступна вот так
hello_world = my_package.main.hello_world
Если идея инжекта в глобальный объект новых свойств не нравится — можно его отключить, кроме того есть несколько настроек для jade-компилятора.
У проекта есть русскоязычный мануал [5], который наверняка станет лучше благодаря вашим вопросам и замечаниям.
Кроме того, есть демо-проект [6], в котором можно посмотреть код и результаты [7] на клиенте.
PS. Буду безмерно благодарен всякому, кто научит писать хорошие мануалы.
Автор: meettya
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/29464
Ссылки в тексте:
[1] stitch: https://github.com/sstephenson/stitch
[2] browserify: https://github.com/substack/node-browserify
[3] clinch: https://github.com/Meettya/clinch
[4] mocha: http://visionmedia.github.com/mocha/
[5] русскоязычный мануал: https://github.com/Meettya/clinch/blob/master/README_ru.md
[6] демо-проект: https://github.com/Meettya/clinch_demo
[7] результаты: http://meettya.github.com/clinch_demo/printer_example.html
[8] Источник: http://habrahabr.ru/post/172831/
Нажмите здесь для печати.