Betabeers
Noviembre 2014
require('build');
About

Drupal e integración continua
Desarrollo de juegos en html5
Los gruñidos de mi build

QUÉ ES?
Un proceso
Automatizado
Que genera un entregable
necesario para la integración continua
y facilita la entrada de nuevos miembros al equipo
PREPARE
COMPILE
UNIT TEST
PACKAGE
INTEGRATION TEST
VERIFY
npm install
bower install
sass less coffee
karma mocha qunit jasmine
zip nar min
pioneer selenium phantomJS
jslint jshint coverage



#!/bin/sh
grunt test
exit $?Pre-commit
TOOLS
Task oriented
Product oriented
Ant
Grunt
Gulp*
MsBuild ..
Maven
Make
Rake*
grunt.registerTask('build', [
'clean:dist',
'wiredep',
'browserify',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'cssmin',
'uglify',
'copy:dist',
'modernizr',
'usemin',
'htmlmin'
]);
Evolve Your
BUILD & Deployment System Incrementally
python -m SimpleHTTPServerUGLIFYJS = ./node_modules/.bin/uglifyjs
BANNER = "/*! Backbone Validater - MIT License - https://github.com/rafinskipg/Backbone.Validater */"
KARMA = ./node_modules/karma/bin/karma
default: test
test: karma build
karma:
$(KARMA) start
build:
$(UGLIFYJS) app/main.js --mangle --preamble $(BANNER) > dist/Backbone.Validater.min.js
loc:
wc -l app/main.js
publish: test build
git push --tags origin HEAD:masterBE EFFECTIVE

TAKE CARE OF YOUR BUILD

Los gruñidos de mi build
REQUIRE


CommonJS
'use strict';
var jquery = require('jquery');
function doSomething(){
console.log('Hey BBMad!');
}
module.exports = doSomething
AMD
define(['jquery'], function ($) {
// methods
function doSomething(){
console.log('Hey BBMad!');
};
// exposed public methods
return doSomething;
});
UMD
(function (root, factory) {
if (typeof define === "function" && define.amd) {
define(["jquery"], factory);
} else if (typeof exports === "object") {
module.exports = factory(require("jquery")));
} else {
root.Requester = factory(root.$);
}
}(this, function ($) {
var doSomething = function(){
console.log('Hey BBMad!');
}
return doSomething;
}));
THERE'S A GRUNT PLUGIN FOR THAT
CODE TIME
https://github.com/rafinskipg/talkbetabeersnovlanguage: node_js
node_js:
- "0.10"
before_install:
- npm install -g grunt-cli
- npm install -g bower
install:
- npm install
- bower install

SOMOS MÁS EFECTIVOS?



@rafinskipg
rvpg.me

Referencias
- BROWSERIFY:
- Brunch http://brunch.io/
- Gulp http://gulpjs.com/
- Grunt http://gruntjs.com/
- Bower http://bower.io/
- Yeoman http://yeoman.io/
- Lineman http://linemanjs.com/
- Grunt usemin https://github.com/yeoman/grunt-usemin
- Karma http://karma-runner.github.io/
- NAR https://github.com/h2non/nar
- VINYL FS https://github.com/wearefractal/vinyl-fs
- MAKE "the ultimate front end build tool" https://algorithms.rdio.com/post/make/
Los require de mi build
By rafinskipg
Los require de mi build
- 1,385