webpack-contrib/cache-loader

cache-loader vs hard-source-webpack-plugin

tarjei opened this issue · 6 comments

Hi, what are the differences between this loader and the hard-source-webpack-plugin?

Also, will the cacheloader speed up paralell webpacks? I'm running webpack-dev-server and karma-webpack at the same time and am looking for something that can help speed up the two.

Regards,
Tarjei

You can use both, since generally you don't need to invalidate cache-loader as often as HardSource. The first one only when your loaders configuration or version changes, the second one you need to invalidate with any change of Webpack's config.

I'd recommend against using both cache-loader and hard-source-webpack-plugin together, since each one incurs a cost on the first (uncached) build to create its cache, and you'll be duplicating a lot of work maintaining two caches of the same thing.

Setting up hard-source-webpack-plugin is really easy for most configs; just drop in the plugin. cache-loader is slightly trickier to set up, since you need to add it to each of your expensive loader chains separately, but it's still not that hard. So if you can, I'd suggest testing the performance of each one with your build. Remember to run webpack once to create the cache, and then again to check the performance with the cache in place.

I had trouble getting hard-source-webpack-plugin working with extract-text-css-plugin (possibly due to webpack-contrib/extract-text-webpack-plugin#612). Otherwise, the two are quite comparable.

This graph shows the performance results (initial and subsequent build, shorter is better) for our codebase, but as always YMMV:

hard-source_vs_cache-loader

Hard source is slower intially for me by double but faster on rebuild by 2x-4x. Great. Same results as @sentience . .cache-loader is slower than default but not as slow as hard source on initial build. On rebuild, .cache-loader is faster but not as fast as hard source. Both are better than no cache! Im' going with hard-source for now, but keeping .cache-loader as a backup second place.

Closing this. Thanks for great responses!

Related: Please see a recent comparison of HardSource with DllPlugin (I wrote it)

fzxt commented

@tarjei Did you find that these plugins actually help with speeding up karma-webpack for your case?