-
Notifications
You must be signed in to change notification settings - Fork 47
Closed
Labels
Description
When not using the html-webpack-plugin, one needs to write a fair amount of custom code to render a script tag with proper SRI attributes for each asset.
I'd like to propose a new saveAs option to make this easier. It would look like this:
import SriPlugin from 'webpack-subresource-integrity';
const plugins = [
new SriPlugin({
hashFuncNames: ['sha512'],
saveAs: path.join(__dirname, 'dist', 'sri-mapping.json'),
}),
];It would write a JSON file that gives you all the data you need to construct script tags:
{
"crossOriginLoading": "anonymous",
"integrityValues": {
"bundle1-3d9b377092c96e232575.js" : "sha512-3zYQGpoq6KJ4D...",
"bundle2-385668e5e9c5eb1bbc7e.js" : "sha512-n8tGFPkzPLMGltk..."
}
}In any server view that writes an index page, one could then easily create a script tag like:
const baseName = filePath.split('/').pop();
return `<script
src="${filePath}"
integrity="${sriMapping.integrityValues[baseName]}"
crossOrigin="${sriMapping.crossOriginLoading}"
/>`;Would you accept a patch for this?
BTW, this interface is what I was using in sri-stats-webpack but that one doesn't support webpack 2 so I have to migrate. The approached worked well enough for a universal React app.