mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-02-21 09:11:26 -08:00
Fix for issue #366 * Create gatsby-ssr.js Note: SSR means "server side rendering". This fix is from a long github discussion about how broken including all css inline in the file is. (Especially since newer CSP guidelines say all css should be in a separate file.) * PR code review fixes * Check el.props['data-href'] is valid * Add comment for production only.
25 lines
815 B
JavaScript
25 lines
815 B
JavaScript
|
|
/* this is a hack to fix `gatsby-plugin-sass` from including the
|
|
css in every single file (which is > 120k lines).
|
|
see: https://github.com/gatsbyjs/gatsby/issues/1526
|
|
`ssr` means server-side rendering.
|
|
*/
|
|
export const onPreRenderHTML = ({getHeadComponents}) => {
|
|
if (process.env.NODE_ENV !== 'production') { // ONLY run in production
|
|
return;
|
|
}
|
|
|
|
getHeadComponents().forEach((el) => {
|
|
// Remove inline css. https://github.com/gatsbyjs/gatsby/issues/1526
|
|
if (el.type === 'style' && el.props['data-href']) {
|
|
el.type = 'link';
|
|
el.props['href'] = el.props['data-href'];
|
|
el.props['rel'] = 'stylesheet';
|
|
el.props['type'] = 'text/css';
|
|
|
|
delete el.props['data-href'];
|
|
delete el.props['dangerouslySetInnerHTML'];
|
|
delete el.props['children'];
|
|
}
|
|
});
|
|
};
|