gatsby-plugin-remove-fingerprints
Easily remove the output contenthash from your built JavaScript files.
Install
yarn add gatsby-plugin-remove-fingerprints
How to use
Add the plugin to your
// In your gatsby-config.js
plugins: [`gatsby-plugin-remove-fingerprints`];
Why?
Gatsby’s default behaviour is to include a [contenthash]
for all built JavaScript files. The default output configuration looks like this:
return {
filename: `[name]-[contenthash].js`,
chunkFilename: `[name]-[contenthash].js`,
path: directoryPath(`public`),
publicPath: withTrailingSlash(publicPath),
};
This is useful for the majority of cases, but services like Netlify recommend building files without a hash. This plugin will eliminate the hash from built JavaScript files. The configuration looks like this:
if (stage === 'build-javascript') {
const newWebpackConfig = {
...getConfig(),
output: {
filename: `[name].js`, // no contenthash
chunkFilename: `[name].js`, // no contenthash
path: getConfig().output.path,
publicPath: getConfig().output.publicPath,
},
};
actions.replaceWebpackConfig(newWebpackConfig);
}
To learn more about the reasons why this is important you can read Netlify’s staff response to a Gatsby issue, Netlify and cache busting urls.
You can also learn more about how Netlify handles their caching.