@@ -217,48 +217,52 @@ Demeteorizer.prototype.bundle = function (context, callback) {
217
217
218
218
Demeteorizer . prototype . findDependenciesInFolder = function ( folder , inNodeModulesFolder , context ) {
219
219
220
- var files = fs . readdirSync ( folder ) ;
221
- var self = this ;
222
-
223
- files . forEach ( function ( file ) {
220
+ fs . readdirSync ( folder ) . forEach ( function ( file ) {
224
221
var stats = fs . statSync ( path . join ( folder , file ) ) ;
225
222
if ( stats . isDirectory ( ) ) {
226
223
var inNodeMod = false ;
227
224
var keepGoing = true ;
225
+
228
226
if ( file === 'node_modules' ) {
229
227
inNodeMod = true ;
230
228
if ( inNodeModulesFolder ) {
231
229
keepGoing = false ;
232
230
}
233
231
}
234
232
235
- // sockjs comes with example folders, remove .
233
+ // Skip the examples directory .
236
234
if ( file === 'examples' ) {
237
235
keepGoing = false ;
238
236
}
239
237
240
238
if ( keepGoing ) {
241
- self . findDependenciesInFolder ( path . join ( folder , file ) , inNodeMod , context ) ;
239
+ this . findDependenciesInFolder ( path . join ( folder , file ) , inNodeMod , context ) ;
242
240
}
243
241
}
244
242
else {
245
243
if ( file === 'package.json' ) {
246
- var packageJson = JSON . parse ( fs . readFileSync ( path . join ( folder , file ) ) ) ;
247
- var filtered = self . filterDep ( packageJson . name , packageJson . _resolved || packageJson . version ) ;
248
- if ( filtered ) {
249
- context . dependencies [ filtered . name ] = filtered . version ;
250
- }
251
- if ( packageJson . dependencies ) {
252
- Object . keys ( packageJson . dependencies ) . forEach ( function ( dep ) {
253
- var filtered = self . filterDep ( dep , packageJson . dependencies [ dep ] ) ;
254
- if ( filtered ) {
255
- context . dependencies [ filtered . name ] = filtered . version ;
256
- }
257
- } ) ;
244
+ var packageData = fs . readFileSync ( path . join ( folder , file ) ) ;
245
+
246
+ // Test that the package.json contains data. There is a module that
247
+ // includes a package.json fixture that is empty.
248
+ if ( packageData . length > 0 ) {
249
+ var packageJson = JSON . parse ( packageData ) ;
250
+ var filtered = this . filterDep ( packageJson . name , packageJson . _resolved || packageJson . version ) ;
251
+ if ( filtered ) {
252
+ context . dependencies [ filtered . name ] = filtered . version ;
253
+ }
254
+ if ( packageJson . dependencies ) {
255
+ Object . keys ( packageJson . dependencies ) . forEach ( function ( dep ) {
256
+ var filtered = this . filterDep ( dep , packageJson . dependencies [ dep ] ) ;
257
+ if ( filtered ) {
258
+ context . dependencies [ filtered . name ] = filtered . version ;
259
+ }
260
+ } . bind ( this ) ) ;
261
+ }
258
262
}
259
263
}
260
264
}
261
- } ) ;
265
+ } . bind ( this ) ) ;
262
266
263
267
} ;
264
268
0 commit comments