Javascript 使用Gatsby中的link标记将样式注入DOM
有没有办法配置gatsby使用链接标记插入样式文件 目前,我有一个全局样式(style.less),我使用。这没关系,但它会将所有CSS内容注入到每个页面中,并会影响页面大小 我想配置gatsby使用链接标记加载这个样式文件,而不是直接注入DOM。网页包有一个用于此目的的链接,但我找不到与盖茨比类似的链接。试试:Javascript 使用Gatsby中的link标记将样式注入DOM,javascript,reactjs,webpack,gatsby,Javascript,Reactjs,Webpack,Gatsby,有没有办法配置gatsby使用链接标记插入样式文件 目前,我有一个全局样式(style.less),我使用。这没关系,但它会将所有CSS内容注入到每个页面中,并会影响页面大小 我想配置gatsby使用链接标记加载这个样式文件,而不是直接注入DOM。网页包有一个用于此目的的链接,但我找不到与盖茨比类似的链接。试试: exports.onCreateWebpackConfig = ({ actions, loaders, getConfig }) => { const config = g
exports.onCreateWebpackConfig = ({ actions, loaders, getConfig }) => {
const config = getConfig();
config.module.rules = [
...config.module.rules.filter(rule => String(rule.test) !== String(/\.jsx?$/)),
{
test: /\.link\.css$/i,
use: [
{ loader: `style-loader`, options: { injectType: `linkTag` } },
{ loader: `file-loader` },
],
},
];
actions.replaceWebpackConfig(config);
};
Gatsby允许您通过公开一些api(比如or)函数来定制web包的配置
如果您考虑到以下因素,那么代码是非常不言自明的。基本上,您正在为与正则表达式匹配的所有文件设置一些自定义加载程序,最后,使用actions.replaceWebpackConfig(config)
覆盖默认配置
有关更多详细信息,请查看
此外,关于原始问题,您不需要在
布局组件中添加全局样式,因为它会导致您所说的内容,从而会影响页面大小。使用Gatsby,您可以使用添加全局样式,如(在Gatsby browser.js
文件中):
检查您提供的链接()。尝试:
exports.onCreateWebpackConfig = ({ actions, loaders, getConfig }) => {
const config = getConfig();
config.module.rules = [
...config.module.rules.filter(rule => String(rule.test) !== String(/\.jsx?$/)),
{
test: /\.link\.css$/i,
use: [
{ loader: `style-loader`, options: { injectType: `linkTag` } },
{ loader: `file-loader` },
],
},
];
actions.replaceWebpackConfig(config);
};
Gatsby允许您通过公开一些api(比如or)函数来定制web包的配置
如果您考虑到以下因素,那么代码是非常不言自明的。基本上,您正在为与正则表达式匹配的所有文件设置一些自定义加载程序,最后,使用actions.replaceWebpackConfig(config)
覆盖默认配置
有关更多详细信息,请查看
此外,关于原始问题,您不需要在布局组件中添加全局样式,因为它会导致您所说的内容,从而会影响页面大小。使用Gatsby,您可以使用添加全局样式,如(在Gatsby browser.js
文件中):
检查您提供的链接()。这可能会有帮助:这可能会有帮助: