Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Grunt: The JavaScript Task Runner
Search
Sebastiaan Deckers
February 25, 2013
Programming
440
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Grunt: The JavaScript Task Runner
Slides for my talk at Front-end Developers User Group (Singapore)
Sebastiaan Deckers
February 25, 2013
More Decks by Sebastiaan Deckers
See All by Sebastiaan Deckers
Commons Host: Building a CDN for the rest of the world
sebdeckers
1
170
SVG Reality
sebdeckers
5
190
About Sebastiaan
sebdeckers
0
190
Frontend 100
sebdeckers
1
540
Frontend 101
sebdeckers
4
590
Frontend 102
sebdeckers
3
540
Frontend 103
sebdeckers
2
550
Frontend Testing
sebdeckers
3
380
Other Decks in Programming
See All in Programming
はじめてのPLATEAU
nokonoko1203
1
370
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
570
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
ActionController meets Protocol Buffers
sorah
1
780
Spec-driven Development with AI
simas
PRO
0
2.2k
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
170
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.5k
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
160
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
120
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Next.js: The final boss of Web Performance
guaca
0
380
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
610
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
330
Skip the Path - Find Your Career Trail
mkilby
1
280
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
550
Building the Perfect Custom Keyboard
takai
2
950
Speed Design
sergeychernyshev
33
2.2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Between Models and Reality
mayunak
4
560
Prompt Engineering for Job Search
mfonobong
0
570
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
The SEO identity crisis: Don't let AI make you average
varn
0
630
Design in an AI World
tapps
1
380
Transcript
The JavaScript Task Runner
What is Grunt? Grunt is like Ant, Make, Rake, SCons,
etc. but, Javascript. NPM.
build script
Automate your build So you can: ... do continuous integration,
... release to production without fear, ... work on more interesting things.
Is Grunt for me? frontend backend mixed Backbone, Ember, Angular
REST/WebSocket API Express.js
Grunt Plugins grunt-contrib: 26 and growing Community: 450+
None
Using Grunt 1. Create package.json 2. Gruntfile.js 3. Run npm
install 4. grunt [task[:target]]
package.json { "name": "hello-world", "version": "0.1.0", "dependencies": { "grunt": "~0.4.0",
"grunt-contrib-jshint": "~0.1.1", "grunt-contrib-uglify": "~0.1.1" } }
Gruntfile.js module.exports = function (grunt) { grunt.initConfig({ uglify: { build:
{ src: 'app.js', dest: 'build/app.min.js' } }, jshint: { all: ['**/*.js'] } }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.registerTask('default', ['jshint', 'uglify']); };
Have it your way Declarative Imperative
Demo
Poor Man's CI $ sudo -i # crontab -e */5
* * * * cd /var/www/myapp.com && git reset --hard && git pull origin master && npm install && npm test && grunt
I am Sebastiaan I email
[email protected]
I blog ninja.sg I
work cf.sg I code git.io/seb