Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
WELCOME TO COPENHAGEN FRONTENDERS
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
STATIC WEB SITES WITH GULP & AWS
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
WHAT ARE THE PROBLEMS? ▸ No toolchain control ▸ Limited by Liquid ▸ Updates are infrequent ▸ Compiler is integrated
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
I CAN MAKE THAT
Slide 16
Slide 16 text
AUTOMATE WORKFLOWS ▸ Compile Sass / Coffeescript ▸ Minify Javascript / CSS ▸ Compress image files ▸ Generate non retina assets ▸ Automatically regenerate on save ▸ Reload web browser
Slide 17
Slide 17 text
INSTALLING GULP $ npm install gulp gulpfile.js var gulp = require('gulp'); gulp.task('hello-world', function() { console.log("Hello World"); }) $ gulp Hello World
Slide 18
Slide 18 text
INSTALLING GULP $ npm install gulp coffee-script gulpfile.coffescript gulp = require 'gulp' gulp.task 'hello-world', -> console.log "Hello World" $ gulp Hello World
Slide 19
Slide 19 text
COMPILE SASS gulp = require 'gulp' sass = require 'gulp-sass' gulp.task 'compile-sass', -> gulp.src("./sass") .pipe(sass()) .pipe(gulp.dest('./css'))
Slide 20
Slide 20 text
COMPILE SASS WITH SOURCEMAPS gulp = require 'gulp' sass = require 'gulp-sass' sourcemaps = require 'gulp-sourcemaps' gulp.task 'compile-sass', -> gulp.src("./sass") .pipe(sass()) .pipe(sourcemaps.init()) .pipe(sourcemaps.write('./maps')) .pipe(gulp.dest('./css'))
Slide 21
Slide 21 text
WATCHING FOR CHANGES gulp.task 'watch', -> gulp.watch './sass', ['compile-sass']
Slide 22
Slide 22 text
WATCHING FOR CHANGES & RELOADING reload = require 'gulp-livereload' gulp.task 'watch', -> reload.listen '9091' gulp.watch './sass', ['compile-sass'] index.html
Slide 23
Slide 23 text
TEMPLATES WITH HANDLEBARS {{> header}}
{{#each apps}}
{{this.name}}
{{img this.icon_url}}
{{/each}}
{{> footer}}
Slide 24
Slide 24 text
TEMPLATES WITH HANDLEBARS opts = { helpers: { img: (path, retina = true, cls = null) -> rp = retinaPath(path) str = "
gulp.src(paths.handlebars) .pipe(handlebars(data, opts)) .pipe(gulp.dest(build_path))
Slide 25
Slide 25 text
DEPLOYING TO S3 $ gem install s3_website
Slide 26
Slide 26 text
DEPLOYING TO S3 s3_website.yml s3_id: <%= ENV['S3_ACCESS_KEY_ID'] %> s3_secret: <%= ENV['S3_SECRET_ACCESS_KEY'] %> s3_bucket: awesome-bucket-name site: build max_age: "*": 300 gzip: true cloudfront_distribution_config: aliases: quantity: 1 items: CNAME: awesomewebsite.tld
Slide 27
Slide 27 text
DEPLOYING TO S3 .env S3_ACCESS_KEY_ID=YADAYADAYADA S3_SECRET_ACCESS_KEY=TROLOLOLOLO Watch the magic happen $ gulp && s3_website push
Slide 28
Slide 28 text
STARTOVER GIHUB.COM/KSMANDERSEN/STARTOVER
Slide 29
Slide 29 text
DEMO
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content