@@ -135,14 +135,15 @@ function gc (folder, opts, cb) {
135
135
} )
136
136
}
137
137
138
- module . exports = function ( folder , hash , log , disable ) {
138
+ module . exports = function ( folder , hash , log , disable , atLeastOnce ) {
139
139
if ( disable ) {
140
140
if ( ! log ) {
141
141
return null
142
142
}
143
143
return disabledLog . bind ( null , log )
144
144
}
145
145
const cachePrefix = path . join ( folder , createHash ( JSON . stringify ( hash ) ) )
146
+ var doneOnce = { }
146
147
require ( 'mkdirp' ) . sync ( folder )
147
148
var handler = function ( file , id , pkg , fallback , cb ) {
148
149
var start = hrtime ( )
@@ -188,9 +189,10 @@ module.exports = function (folder, hash, log, disable) {
188
189
return readFile ( cacheFile , 'utf8' , function ( _err , rawCacheData ) {
189
190
// ignore error
190
191
if ( doLog ) cacheReadTime = msSince ( cacheStart )
191
- if ( ! rawCacheData ) {
192
+ if ( ! rawCacheData || ( atLeastOnce && ! doneOnce [ cacheFile ] ) ) {
192
193
var generateStart = hrtime ( )
193
- return fallback ( fileData , function ( err , data ) {
194
+ return fallback ( doneOnce [ cacheFile ] ? fileData : null , function ( err , data ) {
195
+ doneOnce [ cacheFile ] = true
194
196
if ( doLog ) {
195
197
generateTime = msSince ( generateStart )
196
198
if ( data ) {
0 commit comments