关于讲require进来的样式是作为link标签的方式引入或者作为<style>的形式引入,webpack 中提供了extract-text-webpack-plugin可以将style中的css样式抽离出来。
如果按照以下方式实现:
webpack打包部分代码:
{
test:/\.LK\.css$/,
loader:"style-loader/url!file-loader?name=css/[name].
[hash:8].css!autoprefixer-loader?browsers=last 5 versions",
exclude:/node_modules/
},
{
test:/([^\.][^L][^K])\.css$/, //抱歉,正则写的不是很严谨
loader:"style-loader!css-loader!autoprefixer-loader?{ browsers: ['last 100 versions'] }",
exclude:/node_modules/
}
这样,当require以.LK.css结尾的css样式时,就会以link的形式嵌入到页面中,简单测试了一下这个方案是可以基本实现功能。因为对webpack的研究不是很深入,所以想知道这样的方案是否可以运用到实际开发中?
可以,尤其在 React / Vue 技术栈中可以作为必要的优化手段引入。
提取 CSS 至静态文件后,能够比 JS-in-CSS 的方案节约一半左右的 parse 时间。这个插件同样支持 Hash 后缀等功能,能力是足够在生产环境中使用的。