22
33module . exports = function ( grunt ) {
44
5- var _ = grunt . util . _ ;
6-
75 require ( 'load-grunt-tasks' ) ( grunt ) ;
86
97 // Default task.
108 grunt . registerTask ( 'default' , [ 'jshint' , 'karma:unit' ] ) ;
11- grunt . registerTask ( 'serve' , [ 'karma:continuous' , 'watch' ] ) ;
12- grunt . registerTask ( 'build-doc' , [ 'uglify' , 'copy' ] ) ;
9+ grunt . registerTask ( 'serve' , [ 'karma:continuous' , 'dist' , 'build:gh-pages' , 'connect:continuous' , 'watch' ] ) ;
10+ grunt . registerTask ( 'dist' , [ 'ngmin' , 'uglify' ] ) ;
11+
12+
13+ // HACK TO ACCESS TO THE COMPONENT-PUBLISHER
14+ function fakeTargetTask ( prefix ) {
15+ return function ( ) {
16+
17+ if ( this . args . length !== 1 ) return grunt . log . fail ( 'Just give the name of the ' + prefix + ' you want like :\ngrunt ' + prefix + ':bower' ) ;
18+
19+ var done = this . async ( ) ;
20+ var spawn = require ( 'child_process' ) . spawn ;
21+ spawn ( './node_modules/.bin/gulp' , [ prefix , '--branch=' + this . args [ 0 ] ] . concat ( grunt . option . flags ( ) ) , {
22+ cwd : './node_modules/angular-ui-publisher' ,
23+ stdio : 'inherit'
24+ } ) . on ( 'close' , done ) ;
25+ } ;
26+ }
27+
28+ grunt . registerTask ( 'build' , fakeTargetTask ( 'build' ) ) ;
29+ grunt . registerTask ( 'publish' , fakeTargetTask ( 'publish' ) ) ;
30+ //
31+
1332
1433 var testConfig = function ( configFile , customOptions ) {
1534 var options = { configFile : configFile , singleRun : true } ;
1635 var travisOptions = process . env . TRAVIS && { browsers : [ 'Firefox' , 'PhantomJS' ] , reporters : [ 'dots' ] } ;
1736 return grunt . util . _ . extend ( options , customOptions , travisOptions ) ;
1837 } ;
1938
20- // Demo dependencies
21- var js_dependencies = [
22- '<%= bower %>/angular-ui-bootstrap-bower/ui-bootstrap-tpls.min.js' ,
23- '<%= bower %>/ace-builds/src-min-noconflict/ace.js'
24- ] ;
25-
2639 // Project configuration.
2740 grunt . initConfig ( {
28- bower : 'bower_components' ,
29- dist : '<%= bower %>/angular-ui-docs' ,
3041 pkg : grunt . file . readJSON ( 'package.json' ) ,
3142 meta : {
3243 banner : [ '/**' ,
@@ -35,66 +46,95 @@ module.exports = function (grunt) {
3546 ' * @link <%= pkg.homepage %>' ,
3647 ' * @license <%= pkg.license %>' ,
3748 ' */' ,
38- '' ] . join ( '\n' ) ,
39- view : {
40- humaName : 'UI Ace' ,
41- repoName : 'ui-ace' ,
42- demoHTML : grunt . file . read ( 'demo/demo.html' ) ,
43- demoJS : grunt . file . read ( 'demo/demo.js' ) ,
44- css : [ 'assets/css/demo.css' ] ,
45- js : js_dependencies . concat ( [ 'build/ui-ace.min.js' ] )
46- }
49+ '' ] . join ( '\n' )
4750 } ,
51+
4852 watch : {
49- karma : {
50- files : [ 'ui-ace.js' , 'demo/**/*.js' , 'gruntFile.js' ] ,
51- tasks : [ 'jshint' , 'karma:unit:run' ] //NOTE the :run flag
53+ src : {
54+ files : [ 'src/*' ] ,
55+ tasks : [ 'jshint:src' , 'karma:unit:run' , 'dist' , 'build:gh-pages' ]
56+ } ,
57+ test : {
58+ files : [ 'test/*.js' ] ,
59+ tasks : [ 'jshint:test' , 'karma:unit:run' ]
60+ } ,
61+ demo : {
62+ files : [ 'demo/*' , 'publish.js' ] ,
63+ tasks : [ 'jshint' , 'build:gh-pages' ]
64+ } ,
65+ livereload : {
66+ files : [ 'out/built/gh-pages/**/*' ] ,
67+ options : { livereload : true }
5268 }
5369 } ,
70+
5471 karma : {
5572 unit : testConfig ( 'test/karma.conf.js' ) ,
56- start : { configFile : 'test/karma.conf.js' } ,
57- continuous : { configFile : 'test/karma.conf.js' , background : true }
73+ server : { configFile : 'test/karma.conf.js' } ,
74+ continuous : { configFile : 'test/karma.conf.js' , background : true }
5875 } ,
59- jshint :{
60- files :[ 'ui-ace.js' , 'demo/**/*.js' , 'gruntFile.js' ] ,
61- options : { jshintrc : '.jshintrc' }
76+
77+ connect : {
78+ options : {
79+ base : 'out/built/gh-pages' ,
80+ open : true ,
81+ livereload : true
82+ } ,
83+ server : { options : { keepalive : true } } ,
84+ continuous : { options : { keepalive : false } }
6285 } ,
86+
87+
88+ jshint : {
89+ src : {
90+ files :{ src : [ 'src/*.js' , 'demo/**/*.js' ] } ,
91+ options : { jshintrc : '.jshintrc' }
92+ } ,
93+ test : {
94+ files :{ src : [ 'test/*.spec.js' , 'gruntFile.js' ] } ,
95+ options : grunt . util . _ . extend ( { } , grunt . file . readJSON ( '.jshintrc' ) , {
96+ node : true ,
97+ globals : {
98+ angular : false ,
99+ inject : false ,
100+ jQuery : false ,
101+
102+ jasmine : false ,
103+ afterEach : false ,
104+ beforeEach : false ,
105+ ddescribe : false ,
106+ describe : false ,
107+ expect : false ,
108+ iit : false ,
109+ it : false ,
110+ spyOn : false ,
111+ xdescribe : false ,
112+ xit : false
113+ }
114+ } )
115+ }
116+ } ,
117+
63118 uglify : {
64119 options : { banner : '<%= meta.banner %>' } ,
65120 build : {
66- files : {
67- '<%= dist %>/build/<%= meta.view.repoName %>.min.js' : [ '<%= meta.view.repoName %>.js' ]
68- }
121+ expand : true ,
122+ cwd : 'dist' ,
123+ src : [ '*.js' ] ,
124+ ext : '.min.js' ,
125+ dest : 'dist'
69126 }
70127 } ,
71- copy : {
128+
129+ ngmin : {
72130 main : {
73- files : [
74- { src : [ '<%= meta.view.repoName %>.js' ] , dest : '<%= dist %>/build/<%= meta.view.repoName %>.js' , filter : 'isFile' } ,
75- { src : [ 'demo/demo.html' ] , dest : '<%= dist %>/demos.html' , filter : 'isFile' } ,
76- { src : [ '<%= bower %>/ace-builds/src-min-noconflict/ace.js' ] , dest : '<%= dist %>/<%= bower %>/ace-builds/src-min-noconflict/ace.js' , filter : 'isFile' }
77- ]
78- } ,
79- template : {
80- options : { processContent : function ( content ) {
81- return grunt . template . process ( content ) ;
82- } } ,
83- files : [
84- { src : [ '<%= dist %>/.tmpl/index.tmpl' ] , dest : '<%= dist %>/index.html' } ,
85- { src : [ 'demo/demo.css' ] , dest : '<%= dist %>/assets/css/demo.css' }
86- ]
87- . concat (
88- _ . map ( js_dependencies . concat ( [
89- '<%= bower %>/ace-builds/src-min-noconflict/theme-twilight.js' ,
90- '<%= bower %>/ace-builds/src-min-noconflict/mode-markdown.js' ,
91- '<%= bower %>/ace-builds/src-min-noconflict/mode-scheme.js' ,
92- '<%= bower %>/ace-builds/src-min-noconflict/worker-javascript.js'
93- ] ) , function ( f ) {
94- return { src : [ f ] , dest : '<%= dist %>/' + f , filter : 'isFile' } ;
95- } ) )
131+ expand : true ,
132+ cwd : 'src' ,
133+ src : [ '*.js' ] ,
134+ dest : 'dist'
96135 }
97136 } ,
137+
98138 changelog : {
99139 options : {
100140 dest : 'CHANGELOG.md'
0 commit comments