27 lines
708 B
JavaScript
27 lines
708 B
JavaScript
/**
|
|
* An express middleware that sets req.manifest from the build manifest
|
|
* in the given file. Should be used in production together with
|
|
* https://github.com/soundcloud/chunk-manifest-webpack-plugin
|
|
* to get consistent hashes.
|
|
*/
|
|
function assetsManifest(webpackManifestFile) {
|
|
let manifest;
|
|
try {
|
|
manifest = JSON.parse(fs.readFileSync(webpackManifestFile, "utf8"));
|
|
} catch (error) {
|
|
invariant(
|
|
false,
|
|
'assetsManifest middleware cannot read the manifest file "%s"; ' +
|
|
"run `yarn build` before starting the server",
|
|
webpackManifestFile
|
|
);
|
|
}
|
|
|
|
return (req, res, next) => {
|
|
req.manifest = manifest;
|
|
next();
|
|
};
|
|
}
|
|
|
|
module.exports = assetsManifest;
|