Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Grunt.js
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Matias Singers
January 29, 2014
Programming
180
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Grunt.js
Matias Singers
January 29, 2014
Other Decks in Programming
See All in Programming
RTSPクライアントを自作してみた話
simotin13
0
510
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
450
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
730
Inside Stream API
skrb
1
650
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
270
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.7k
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
1.7k
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
Oxlintのカスタムルールの現況
syumai
6
1k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
120
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
410
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
HDC tutorial
michielstock
2
690
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
The SEO identity crisis: Don't let AI make you average
varn
0
480
How to build a perfect <img>
jonoalderson
1
5.6k
Writing Fast Ruby
sferik
630
63k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
390
Producing Creativity
orderedlist
PRO
348
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Transcript
None
Grunt
$ npm install -g grunt-cli Installation
Setup + Gruntfile.js package.json
$ npm init $ npm install grunt --save-dev $ npm
install grunt-contrib-connect --save-dev $ npm install grunt-contrib-watch --save-dev $ npm install grunt-contrib-sass --save-dev $ npm install load-grunt-tasks --save-dev Install Grunt plugins
1 { 2 "name": "my-project", 3 "version": "0.1.0", 4 "devDependencies":
{ 5 "grunt": "~0.4.2", 6 "grunt-contrib-connect": "~0.6.0", 7 "grunt-contrib-watch": "~0.5.3", 8 "grunt-contrib-sass": "~0.7.0", 9 "load-grunt-tasks": "~0.3.0" 10 } 11 } package.json https://npmjs.org/doc/json.html
• Loading Grunt plugins and tasks • "wrapper" function •
Project and task configuration • Custom tasks Gruntfile.js http://gruntjs.com/getting-started
1 module.exports = function(grunt) { 2 // instead of having
multiple grunt.loadNpmTasks(''); 3 require('load-grunt-tasks')(grunt); 4 5 // Do grunt-related things in here 6 }; Gruntfile.js - wrapper http://gruntjs.com/getting-started
1 module.exports = function(grunt) { 2 require('load-grunt-tasks')(grunt); 3 4 grunt.initConfig({
5 connect: { 6 options: { 7 port: 9001, 8 open: true, 9 hostname: 'localhost' 10 }, 11 server: { 12 // specific configs for the server task 13 } 14 }, 15 }); 16 }; Gruntfile.js - task configuration http://gruntjs.com/getting-started
1 // Default task(s). 2 grunt.registerTask('default', ['connect:server']); Gruntfile.js - custom
tasks http://gruntjs.com/getting-started
1 // Default task(s). 2 grunt.registerTask('default', ['connect:server']); Gruntfile.js - custom
tasks 1 // A very basic default task. 2 grunt.registerTask('default', 'Logger', function() { 3 grunt.log.write('Logging...').ok(); 4 }); http://gruntjs.com/getting-started
Gruntfile.js - custom tasks 1 grunt.registerTask('server', [ 2 'clean:server', 3
'sass:server', 4 'connect:server', 5 'watch' 6 ]); http://gruntjs.com/getting-started
http://gruntjs.com/plugins
http://gruntjs.com/plugins
None
Concatenating 1 concat: { 2 'js/main.js': [ 3 'js/controllers/events.js', 4
'js/controllers/login.js', 5 'js/controllers/menu.js' 6 ] 7 } module: grunt-contrib-concat
Concatenating module: grunt-contrib-concat grunt-usemin + 1 <!-- build:js js/main.js -->
2 <script src="js/controllers/events.js"></script> 3 <script src="js/controllers/login.js"></script> 4 <script src="js/controllers/menu.js"></script> 5 <!-- endbuild -->
Watching files 1 watch: { 2 sass: { 3 files:
['styles/**/*.{scss,sass}'], 4 tasks: ['sass:server'] 5 }, 6 livereload: { 7 files: [ 8 'views/**/*.html', 9 'scripts/**/*.js', 10 'styles/**/*.css', 11 'img/**/*.{png,jpg,jpeg,gif,webp,svg}' 12 ], 13 options: { 14 livereload: true 15 } 16 } 17 } module: grunt-contrib-watch
Watching files module: grunt-contrib-watch - Waiting... OK >> File "public/styles/main.sass"
changed. ! Running "sass:app" (sass) task ! Done, without errors. ... Reload public/styles/main.css ... Completed in 0.178s at Tue Jan 28 2014 12:22:51 GMT+0800 (MYT)
None
enjoy your automated workflow!
Advantages
@matiassingers github.com/matiassingers Thank you! Any questions?