@@ -13,18 +13,22 @@ module.exports = function (grunt) {
13
13
} ) ;
14
14
require ( 'time-grunt' ) ( grunt ) ;
15
15
16
+ var webpack = require ( 'webpack' ) ;
16
17
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.' ;
17
25
18
26
// Project configuration.
19
27
grunt . initConfig ( {
20
28
pkg : pkg ,
21
29
clean : {
22
30
dist : [ 'dist/' ]
23
31
} ,
24
- jshint : {
25
- all : [ 'Gruntfile.js' , 'src/**/*.js' ] ,
26
- jshintrc : '.jshintrc'
27
- } ,
28
32
watch : {
29
33
dist : {
30
34
files : [ 'src/**/*.js' ] ,
@@ -36,10 +40,10 @@ module.exports = function (grunt) {
36
40
options : {
37
41
sourceMap : true ,
38
42
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' +
40
46
'* @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' +
43
47
'* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' +
44
48
'* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' +
45
49
'*\n' +
@@ -80,6 +84,40 @@ module.exports = function (grunt) {
80
84
options : {
81
85
coverage_dir : 'coverage'
82
86
}
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
+ }
83
121
}
84
122
} ) ;
85
123
@@ -91,28 +129,9 @@ module.exports = function (grunt) {
91
129
grunt . file . write ( filePath , file ) ;
92
130
} ) ;
93
131
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
-
112
132
grunt . registerTask ( 'build' , [
113
133
'clean' ,
114
- 'jshint' ,
115
- 'banner' ,
134
+ 'webpack' ,
116
135
'uglify'
117
136
] ) ;
118
137
grunt . registerTask ( 'go' , [ 'build' , 'watch:dist' ] ) ;
0 commit comments