From ab3057041acd66e38dd722fcbb2519429ed73c35 Mon Sep 17 00:00:00 2001 From: Dylan Piercey Date: Fri, 7 Aug 2020 12:10:02 -0700 Subject: [PATCH] fix: avoid writing unchanged virtual modules to disk --- src/loader/index.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/loader/index.ts b/src/loader/index.ts index 754f4ca..b4acc62 100644 --- a/src/loader/index.ts +++ b/src/loader/index.ts @@ -183,8 +183,19 @@ export default function(source: string): void | string { path.dirname(this.resourcePath), dep.virtualPath ); - const virtualModules = getVirtualModules(this._compiler); - virtualModules.writeModule(virtualPath, dep.code); + + // We don't want to hit the disk, but instead check if the viritual file was already written. + const existingContent = + this.fs._readFileStorage && + this.fs._readFileStorage.data.get(virtualPath); + + if (!existingContent || existingContent[1] !== dep.code) { + getVirtualModules(this._compiler).writeModule( + virtualPath, + dep.code + ); + } + dependencies.push(loadStr(dep.virtualPath)); } }