1+
12module . exports = function ( grunt ) {
23 "use strict" ;
34
45 var _ = require ( 'lodash' ) ;
56 var path = require ( 'path' ) ;
7+ var through = require ( 'through2' ) ;
68
79 var excludedPlugins = [
810 'react-native'
@@ -58,7 +60,7 @@ module.exports = function(grunt) {
5860 key . sort ( ) ;
5961
6062 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 ) ;
6264
6365 return dict ;
6466 } , { } ) ;
@@ -68,26 +70,38 @@ module.exports = function(grunt) {
6870 aws : grunt . file . exists ( 'aws.json' ) ? grunt . file . readJSON ( 'aws.json' ) : { } ,
6971
7072 clean : [ 'build' ] ,
71- concat : {
72- options : {
73- separator : '\n' ,
74- process : true
75- } ,
76- plugins : {
77- files : pluginConcatFiles
78- }
79- } ,
8073
8174 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+ } ,
8299 core : {
83100 src : 'src/raven.js' ,
84101 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
91105 }
92106 } ,
93107
@@ -252,15 +266,13 @@ module.exports = function(grunt) {
252266
253267 // Grunt contrib tasks
254268 grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
255- grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
256269 grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
257270 grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
258271 grunt . loadNpmTasks ( 'grunt-contrib-connect' ) ;
259272 grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
260273
261274 // 3rd party Grunt tasks
262275 grunt . loadNpmTasks ( 'grunt-browserify' ) ;
263- grunt . loadNpmTasks ( 'grunt-exorcise' ) ;
264276 grunt . loadNpmTasks ( 'grunt-mocha' ) ;
265277 grunt . loadNpmTasks ( 'grunt-release' ) ;
266278 grunt . loadNpmTasks ( 'grunt-s3' ) ;
@@ -269,10 +281,10 @@ module.exports = function(grunt) {
269281
270282 // Build tasks
271283 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' ] ) ;
276288 grunt . registerTask ( 'build' , [ 'build.all' ] ) ;
277289 grunt . registerTask ( 'dist' , [ 'build.core' , 'copy:dist' ] ) ;
278290
0 commit comments