@@ -13,18 +13,22 @@ module.exports = function (grunt) {
1313 } ) ;
1414 require ( 'time-grunt' ) ( grunt ) ;
1515
16+ var webpack = require ( 'webpack' ) ;
1617 var pkg = grunt . file . readJSON ( 'package.json' ) ;
18+ var banner = 'js-data-angular\n' +
19+ '@version ' + pkg . version + ' - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' +
20+ '@author Jason Dobry <[email protected] >\n' + 21+ '@copyright (c) 2014-2015 Jason Dobry \n' +
22+ '@license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' +
23+ '\n' +
24+ '@overview Angular wrapper for js-data.' ;
1725
1826 // Project configuration.
1927 grunt . initConfig ( {
2028 pkg : pkg ,
2129 clean : {
2230 dist : [ 'dist/' ]
2331 } ,
24- jshint : {
25- all : [ 'Gruntfile.js' , 'src/**/*.js' ] ,
26- jshintrc : '.jshintrc'
27- } ,
2832 watch : {
2933 dist : {
3034 files : [ 'src/**/*.js' ] ,
@@ -36,10 +40,10 @@ module.exports = function (grunt) {
3640 options : {
3741 sourceMap : true ,
3842 sourceMapName : 'dist/js-data-angular.min.map' ,
39- banner : '/**\n' +
43+ banner : '/*!\n' +
44+ '* js-data-angular\n' +
45+ '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' +
4046 '* @author Jason Dobry <[email protected] >\n' + 41- '* @file js-data-angular.min.js\n' +
42- '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/js-data-angular/>\n' +
4347 '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' +
4448 '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' +
4549 '*\n' +
@@ -80,6 +84,40 @@ module.exports = function (grunt) {
8084 options : {
8185 coverage_dir : 'coverage'
8286 }
87+ } ,
88+ webpack : {
89+ dist : {
90+ entry : './src/index.js' ,
91+ output : {
92+ filename : './dist/js-data-angular.js' ,
93+ libraryTarget : 'umd' ,
94+ library : 'jsDataAngularModuleName'
95+ } ,
96+ externals : {
97+ 'js-data' : {
98+ amd : 'js-data' ,
99+ commonjs : 'js-data' ,
100+ commonjs2 : 'js-data' ,
101+ root : 'JSData'
102+ } ,
103+ 'angular' : 'angular'
104+ } ,
105+ module : {
106+ loaders : [
107+ { test : / ( s r c ) ( .+ ) \. j s $ / , exclude : / n o d e _ m o d u l e s / , loader : 'babel-loader?blacklist=useStrict' }
108+ ] ,
109+ preLoaders : [
110+ {
111+ test : / ( s r c ) ( .+ ) \. j s $ | ( t e s t ) ( .+ ) \. j s $ / , // include .js files
112+ exclude : / n o d e _ m o d u l e s / , // exclude any and all files in the node_modules folder
113+ loader : "jshint-loader?failOnHint=true"
114+ }
115+ ]
116+ } ,
117+ plugins : [
118+ new webpack . BannerPlugin ( banner )
119+ ]
120+ }
83121 }
84122 } ) ;
85123
@@ -91,28 +129,9 @@ module.exports = function (grunt) {
91129 grunt . file . write ( filePath , file ) ;
92130 } ) ;
93131
94- grunt . registerTask ( 'banner' , function ( ) {
95- var file = grunt . file . read ( './src/index.js' ) ;
96-
97- var banner = '/**\n' +
98- '* @author Jason Dobry <[email protected] >\n' + 99- '* @file js-data-angular.js\n' +
100- '* @version ' + pkg . version + ' - Homepage <http://www.js-data.io/docs/js-data-angular/>\n' +
101- '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' +
102- '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' +
103- '*\n' +
104- '* @overview Angular wrapper for js-data.js.\n' +
105- '*/\n' ;
106-
107- file = banner + file ;
108-
109- grunt . file . write ( './dist/js-data-angular.js' , file ) ;
110- } ) ;
111-
112132 grunt . registerTask ( 'build' , [
113133 'clean' ,
114- 'jshint' ,
115- 'banner' ,
134+ 'webpack' ,
116135 'uglify'
117136 ] ) ;
118137 grunt . registerTask ( 'go' , [ 'build' , 'watch:dist' ] ) ;
0 commit comments