1
+
1
2
module . exports = function ( grunt ) {
2
3
"use strict" ;
3
4
4
5
var _ = require ( 'lodash' ) ;
5
6
var path = require ( 'path' ) ;
7
+ var through = require ( 'through2' ) ;
6
8
7
9
var excludedPlugins = [
8
10
'react-native'
@@ -58,7 +60,7 @@ module.exports = function(grunt) {
58
60
key . sort ( ) ;
59
61
60
62
var dest = path . join ( 'build/' , key . join ( ',' ) , '/raven.js' ) ;
61
- dict [ dest ] = [ 'build /raven.js' ] . concat ( comb ) ;
63
+ dict [ dest ] = [ 'src /raven.js' ] . concat ( comb ) ;
62
64
63
65
return dict ;
64
66
} , { } ) ;
@@ -68,26 +70,38 @@ module.exports = function(grunt) {
68
70
aws : grunt . file . exists ( 'aws.json' ) ? grunt . file . readJSON ( 'aws.json' ) : { } ,
69
71
70
72
clean : [ 'build' ] ,
71
- concat : {
72
- options : {
73
- separator : '\n' ,
74
- process : true
75
- } ,
76
- plugins : {
77
- files : pluginConcatFiles
78
- }
79
- } ,
80
73
81
74
browserify : {
75
+ options : {
76
+ browserifyOptions : {
77
+ banner : grunt . file . read ( 'template/_copyright.js' ) ,
78
+ standalone : 'Raven' , // umd
79
+ } ,
80
+ transform : [
81
+ [
82
+ // custom transformer to re-write plugins to self-register
83
+ // with Raven
84
+ new function ( ) {
85
+ return function ( file , options ) {
86
+ return through ( function ( buf , enc , next ) {
87
+ var buf = buf . toString ( 'utf8' ) ;
88
+ if ( / p l u g i n s / . test ( file ) ) {
89
+ buf += "\nRaven.addPlugin(module.exports.install);" ;
90
+ }
91
+ this . push ( buf ) ;
92
+ next ( ) ;
93
+ } ) ;
94
+ }
95
+ }
96
+ ]
97
+ ]
98
+ } ,
82
99
core : {
83
100
src : 'src/raven.js' ,
84
101
dest : 'build/raven.js' ,
85
- options : {
86
- banner : grunt . file . read ( 'template/_copyright.js' ) ,
87
- browserifyOptions : {
88
- standalone : 'Raven' // umd
89
- }
90
- }
102
+ } ,
103
+ plugins : {
104
+ files : pluginConcatFiles
91
105
}
92
106
} ,
93
107
@@ -252,15 +266,13 @@ module.exports = function(grunt) {
252
266
253
267
// Grunt contrib tasks
254
268
grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
255
- grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
256
269
grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
257
270
grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
258
271
grunt . loadNpmTasks ( 'grunt-contrib-connect' ) ;
259
272
grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
260
273
261
274
// 3rd party Grunt tasks
262
275
grunt . loadNpmTasks ( 'grunt-browserify' ) ;
263
- grunt . loadNpmTasks ( 'grunt-exorcise' ) ;
264
276
grunt . loadNpmTasks ( 'grunt-mocha' ) ;
265
277
grunt . loadNpmTasks ( 'grunt-release' ) ;
266
278
grunt . loadNpmTasks ( 'grunt-s3' ) ;
@@ -269,10 +281,10 @@ module.exports = function(grunt) {
269
281
270
282
// Build tasks
271
283
grunt . registerTask ( '_prep' , [ 'clean' , 'gitinfo' , 'version' ] ) ;
272
- grunt . registerTask ( 'concat .core' , [ 'browserify ' , 'exorcise ' ] ) ;
273
- grunt . registerTask ( 'concat .plugins' , [ 'concat :plugins' ] ) ;
274
- grunt . registerTask ( 'build.core' , [ '_prep' , 'concat .core', 'uglify' , 'fixSourceMaps' , 'sri:dist' ] ) ;
275
- grunt . registerTask ( 'build.all' , [ '_prep' , 'concat.core' , 'concat .plugins', 'uglify' , 'fixSourceMaps' , 'sri:dist' , 'sri:build' ] ) ;
284
+ grunt . registerTask ( 'browserify .core' , [ '_prep ' , 'browserify:core ' ] ) ;
285
+ grunt . registerTask ( 'browserify .plugins' , [ '_prep' , 'browserify :plugins'] ) ;
286
+ grunt . registerTask ( 'build.core' , [ 'browserify .core' , 'uglify' , 'fixSourceMaps' , 'sri:dist' ] ) ;
287
+ grunt . registerTask ( 'build.all' , [ 'browserify .plugins' , 'uglify' , 'fixSourceMaps' , 'sri:dist' , 'sri:build' ] ) ;
276
288
grunt . registerTask ( 'build' , [ 'build.all' ] ) ;
277
289
grunt . registerTask ( 'dist' , [ 'build.core' , 'copy:dist' ] ) ;
278
290
0 commit comments