hard-source-webpack-plugin-fixed-hashbug
Version:
Hard cache the source of modules in webpack. Patched version fixing the hash bug
45 lines (37 loc) • 1.05 kB
JavaScript
const join = require('path').join;
const pluginCompat = require('./util/plugin-compat');
let LevelDbSerializer;
let AppendSerializerPlugin;
class HardSourceLevelDbSerializerPlugin {
apply(compiler) {
pluginCompat.tap(
compiler,
'hardSourceCacheFactory',
'LevelDbSerializer',
factory => info => {
if (info.type === 'data') {
return HardSourceLevelDbSerializerPlugin.createSerializer(info);
}
return factory(info);
},
);
}
}
HardSourceLevelDbSerializerPlugin.createSerializer = info => {
if (!LevelDbSerializer) {
try {
LevelDbSerializer = require('./SerializerLeveldb');
} catch (e) {}
}
if (LevelDbSerializer) {
return new LevelDbSerializer({
cacheDirPath: join(info.cacheDirPath, info.name),
});
} else {
if (!AppendSerializerPlugin) {
AppendSerializerPlugin = require('./SerializerAppendPlugin');
}
return AppendSerializerPlugin.createSerializer(info);
}
};
module.exports = HardSourceLevelDbSerializerPlugin;