High-Quality JavaScript
-
Upload
marc-baechinger -
Category
Technology
-
view
109 -
download
1
description
Transcript of High-Quality JavaScript
![Page 1: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/1.jpg)
High quality
![Page 2: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/2.jpg)
Marc BächingerPrincipal consultant, HTML5 Evangelist
talk powered by Zühlke JS crew !
Michael SchnyderSoftware Engineer, Drone pilot
![Page 3: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/3.jpg)
THEY SAID: „JAVASCRIPT IS THE FUTURE OF COMPUTING“
![Page 4: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/4.jpg)
THEY SAID: „JAVASCRIPT IS THE FUTURE OF COMPUTING“
![Page 5: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/5.jpg)
![Page 6: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/6.jpg)
dynamic typing
very-late binding
![Page 7: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/7.jpg)
dynamic typing
very-late binding
must run to be verified!
![Page 8: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/8.jpg)
BONE AND BANE OF JS
$.ajax({ url: "person/2", dataType: "json", success: function (obj) { var person = new Person(); $.extend(person, obj); global.person.push(person); } });
![Page 9: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/9.jpg)
BONE AND BANE OF JS
$.ajax({ url: "person/42", dataType: "json", success: function (obj) { $.extend(Person.prototype, obj); } });
![Page 10: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/10.jpg)
BONE AND BANE OF JS$.ajax({ url: "person/2", dataType: "json", success: function (obj) { var person = new Person(); if (someCondition(obj)) { $.extend(person, { getFullname: function () { return first + " " + last; } }); } global.person.push(person); } });
![Page 11: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/11.jpg)
COUNTERMEASURES!
![Page 12: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/12.jpg)
DEVELOPMENT CYCLE
findbugs, checkstyle
IDEcompile
testing
jUnit
selenium
Java
![Page 13: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/13.jpg)
DEVELOPMENT CYCLE
findbugs, checkstyle
IDEcompile
testing
jUnit
selenium
Java
![Page 14: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/14.jpg)
DEVELOPMENT CYCLE
static code analysis
development
productionalizing
concatenate
minimize
testing
unit test
component tests
JavaScriptfindbugs, checkstyle
IDEcompile
testing
jUnit
selenium
Java
![Page 15: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/15.jpg)
ARCHITECTURE AND DESIGN
![Page 16: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/16.jpg)
MODULES!
require(["app/services"], function(services) { // use services } );
![Page 17: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/17.jpg)
TOOL CHAIN
![Page 18: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/18.jpg)
!
TOOL PARADE
jshint
uglify
esprima
require.js
less
bower
istanbul
karma
jasmine
![Page 19: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/19.jpg)
![Page 20: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/20.jpg)
DEVELOPMENT CYCLE
grunt jshint
IDE/Editor/CI
productionalizing
cssmin
htmlcompress
testing
jasmine
qunit
uglify
concatenate
![Page 21: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/21.jpg)
JSHINT - NOT A COMPILER
app/scripts/domain-factory.js !line 4 col 3 Missing "use strict" statement. line 11 col 47 'suffix' is defined but never used. line 16 col 22 Missing semicolon. line 35 col 5 'person' is not defined. line 37 col 11 Expected '===' and instead saw '=='. line 38 col 5 Expected '{' and instead saw 'c'. line 38 col 5 Expected 'c' to have an indentation at 7 instead at 5. line 43 col 24 Missing 'new' prefix when invoking a constructor.
![Page 22: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/22.jpg)
RELEASE WITH GRUNT
jshint
copy
concat
uglify cssmin htmlprocessor
karma
checkstyle findbugs
copy web files to distribution directory
concatenate file (js, css)
minimize
run tests
![Page 23: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/23.jpg)
GRUNT AS OFTEN AS IT GETSjshint
copy
concat
uglify cssmin htmlprocessor
karma
![Page 24: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/24.jpg)
GRUNT AS OFTEN AS IT GETSjshint
copy
concat
uglify cssmin htmlprocessor
karma
on local file change
![Page 25: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/25.jpg)
GRUNT AS OFTEN AS IT GETSjshint
copy
concat
uglify cssmin htmlprocessor
karma
on local file change
on push to repository
![Page 26: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/26.jpg)
TOOL INTEGRATION
![Page 27: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/27.jpg)
BARE BONE BUILD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browser
![Page 28: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/28.jpg)
CI MIT JENKINS
![Page 29: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/29.jpg)
CI MIT JENKINS
![Page 30: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/30.jpg)
WEBSTORM IDE
![Page 31: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/31.jpg)
MICROSOFT
What is Microsofts answer for developing Enterprise JavaScript Applications?
![Page 32: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/32.jpg)
![Page 33: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/33.jpg)
![Page 34: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/34.jpg)
JAVASCRIPT FOR VISUAL STUDIO
“Enable efficient SPA development on the .NET platform by providing a proven,
enterprise-ready toolchain”
![Page 35: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/35.jpg)
ZÜHLKE SPA STACK
![Page 36: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/36.jpg)
HIGH QUALITY JAVASCRIPT ?
![Page 37: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/37.jpg)
WHAT TO DO ?leverage JavaScript build tools
tool integration
continuous integration
unit testing
architecture and design
![Page 38: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/38.jpg)
![Page 39: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/39.jpg)
thx!
@marcbaechinger
![Page 40: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/40.jpg)
BACKUP SLIDES
![Page 41: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/41.jpg)
GRUNTFILE.JSmodule.exports = function(grunt) { var DOC_ROOT = "public_html", DIST_DIR = "build"; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), copy: { dist: { files: [ { expand: true, src: [DOC_ROOT + '/**'], dest: DIST_DIR } ] } }, [...] } };
![Page 42: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/42.jpg)
GRUNT: BASE{ "name": "jquery-app", "version": "0.0.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-concat": "~0.1.3", "grunt-contrib-uglify": "~0.2.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-clean": "~0.4.1", "grunt-contrib-cssmin": "~0.6.1", "grunt-htmlcompressor": "~0.1.8", "grunt-contrib-watch": "~0.3.1", "grunt-regarde": "~0.1.1", "grunt-contrib-connect": "0.1.2", "grunt-contrib-livereload": "0.1.1" "grunt-open": "~0.2.2", "grunt-karma": "~0.6.1", "karma": "~0.10.1", "karma-chrome-launcher": "~0.1.0", "karma-jasmine": "~0.1.0", "karma-qunit": "~0.1.0", "karma-html2js-preprocessor": "~0.1" } }
![Page 43: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/43.jpg)
GRUNT: LIVE RELOAD{ "name": "jquery-app", "version": "0.0.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-concat": "~0.1.3", "grunt-contrib-uglify": "~0.2.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-clean": "~0.4.1", "grunt-contrib-cssmin": "~0.6.1", "grunt-htmlcompressor": "~0.1.8", "grunt-contrib-watch": "~0.3.1", "grunt-regarde": "~0.1.1", "grunt-contrib-connect": "0.1.2", "grunt-contrib-livereload": "0.1.1" "grunt-open": "~0.2.2", "grunt-karma": "~0.6.1", "karma": "~0.10.1", "karma-chrome-launcher": "~0.1.0", "karma-jasmine": "~0.1.0", "karma-qunit": "~0.1.0", "karma-html2js-preprocessor": "~0.1" } }
![Page 44: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/44.jpg)
GRUNT: LIVE RELOAD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browser
![Page 45: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/45.jpg)
GRUNT: LIVE RELOAD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browserwatches1
![Page 46: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/46.jpg)
GRUNT: LIVE RELOAD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browser
save
2
watches1
![Page 47: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/47.jpg)
GRUNT: LIVE RELOAD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browser
save
2
watches1
request reload
3
![Page 48: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/48.jpg)
GRUNT: LIVE RELOAD------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
Editor
Browser
save
2
watches1
request reload
3
load
4
![Page 49: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/49.jpg)
GRUNT: KARMA{ "name": "jquery-app", "version": "0.0.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-concat": "~0.1.3", "grunt-contrib-uglify": "~0.2.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-clean": "~0.4.1", "grunt-contrib-cssmin": "~0.6.1", "grunt-htmlcompressor": "~0.1.8", "grunt-contrib-watch": "~0.3.1", "grunt-regarde": "~0.1.1", "grunt-contrib-connect": "0.1.2", "grunt-contrib-livereload": "0.1.1" "grunt-open": "~0.2.2", "grunt-karma": "~0.6.1", "karma": "~0.10.1", "karma-chrome-launcher": "~0.1.0", "karma-jasmine": "~0.1.0", "karma-qunit": "~0.1.0", "karma-html2js-preprocessor": "~0.1" } }
![Page 50: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/50.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
![Page 51: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/51.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1
![Page 52: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/52.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1register
2
![Page 53: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/53.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1register
2
3changed
![Page 54: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/54.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1register
2
request rerun 4
3changed
![Page 55: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/55.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1register
2
request rerun 4
execute5
3changed
![Page 56: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/56.jpg)
GRUNT: KARMA------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
*.html *.js *.css
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
------------------------------ --------------- --------------- ---------------
fooSpec.jsbarSpec.jsbarSpec.js
Chrome Firefox
Android
iOS
fooSpec.jsbarSpec.jsbarSpec.js
fooSpec.jsbarSpec.jsbarSpec.jsfooSpec.jsbarSpec.jsfooSpec.js
Karma
watches 1register
2
request rerun 4
execute5
test report
6
3changed
![Page 57: High-Quality JavaScript](https://reader034.fdocuments.in/reader034/viewer/2022051314/54c739404a795927458b457c/html5/thumbnails/57.jpg)
RUNNING GRUNT WITH MAVEN
• yeoman-maven-plugin
• Exec Maven plugin