美文网首页
Css Loaders[v6]

Css Loaders[v6]

作者: 玫瑰的lover | 来源:发表于2024-02-17 18:24 被阅读0次

CSS 模块化方案的配置文件

module.exports = {
  module: {
    rules : [
      {
          test: "\.css$i",
          use: [
            {loader: 'style-loader'},
            {loader: 'css-loader'},
            {loader: 'postcss-loader'},
            {loader: 'sass-loader'},
          ]
       }
      ]
   }
}

首先使用 sass-loaderSass 文件编译成 CSS 文件,然后使用 postcss-loader 处理 CSS 文件中的浏览器兼容性问题,并使用 css-loader 解析 CSS样式表中的 @importurl() 语句。最后使用style-loaderCSS 样式表直接加载到 DOM 中的 <style/>

重大知识点

loader 从下向上执行 !!!

解析

  • css-loader css module hash 命名生成规则,官方建议配置
 options: { modules: { localIdentName: "[path][name]__[local]--[hash:base64:5]", }, }

base64 生成的 hash 位,这可以通过看线上的代码进行验证

  • css-loader 中引用其他 loader
    生产环境的构建将 CSSbundle 中分离出来。mini-css-extract-plugin & style-loader
    ⚠️ 不要同时使用上面那两个loader哈!!!
  • css-loader的作用主要是解析 css 文件中的 @importurl 语句,处理css-modules,并将结果作为一个 js 模块返回
  • style-loaderDOM中插入一个<style />标签,然后将 CSS 写入这个标签
  • postcss-loader 这个 loader的强大在于他的 plugin,增加CSS前缀,并进行压缩

使用 auto-prefixer 添加厂商前缀;想处理写在 JS 中的样式 postcss-js parser

  • scss-loader 编译成标准的 CSS ,处理变量,嵌套,继承

  • miniCssExtractPlugin

plugins:[newMiniCssExtractPlugin({filename:isProductionMode?'[name].[contenthash].css':'[name].css',}),]

相关文章

网友评论

      本文标题:Css Loaders[v6]

      本文链接:https://www.haomeiwen.com/subject/kogyadtx.html