• 2.1.6 css的编译与处理 -2


    less ,sass等预处理语言的编译  --浏览器无法识别,需要编译成css才能被识别

    less

    1、less      
    2、less-loader  

    sass

    1、sass-loader
    2、node-sass
    以less为例
    rules: [ { test:
    /.less$/, use:[ //loader的执行顺序是从后往前的 { loader: 'style-loader', options:{ singleton: true, transform: './transform.js' } },{ loader: 'css-loader', options: { module: { localIdentName: '[path][name]_[local]_[hash:4]' //类名会被编译,起个别名 path-路径 name-文件名 local-本来的类名 } } },{ loader: 'less-loader' } ] } ]

    提取css代码  --把css打包成一个单独的文件 extract-text-webpack-plugin

    安装对应的插件  -->  改造成loader处的写法  -->  在plugin处添加

    -->  extract-text-webpack-plugin 

    --> 引入extract-text-webpack-plugin, 把 user 改成使用extract-text-webpack-plugin  

    -->   把 extract-text-webpack-plugin加 入 plugin 里 

    --> index.html 中使用 link 引入 <link rel="stylesheet" type="text/css" href="./src/dist/app.min.css">

    var extractTextCss=require('extract-text-webpack-plugin');
    module.exports= {
        module:{
            rules: [
         {
           test:/.less$/,
           use: extractTextCss.extract({
             fallback: { //值为style-loader
                loader: 'style-loader',
                options:{
                  // insertInfo: '#mydiv',
                  singleton: true,
                  transform: './transform.js'
                }
              },
              use: [ //执行style-loader之前要使用的loader
                {
                  loader: 'css-loader',
                  options: {
                    // module: true
                    module: {
                      localIdentName: '[path][name]_[local]_[hash:4]' //类名会被编译,起个别名 path-路径 name-文件名 local-本来的类名
                    }
                  }
                },{
                  loader: 'less-loader'
                }
              ]
           })
         }
            ]
      },
      plugins: [
        new extractTextCss({
          filename: '[name].min.css'
        })
      ]
    }
    指定公用的 browsersList 
    1、在项目中新建 .browserslistrc 文件,,,不太清楚
    2、在package.json中指定  --- 更推荐
      "browserslist":[
        ">1%","last 2 versions"
      ] 

    postcss 的插件 自动补充前缀和使用下一个css样式

    安装:

    cnpm install postcss postcss-loader autoprefixer postcss-cssnext --save

    终结版

    var extractTextCss=require('extract-text-webpack-plugin');
    module.exports= {
        entry:{
         app:"./app.js",
        },
        output:{
            path:__dirname+"/src/dist",
            filename:"./[name].bundle.js"
        },
         resolve:{
         alias: {
           a2:"./js/app2.js",
         }
         },
        module:{
            rules: [
         {
           test:/.less$/,
           use:extractTextCss.extract({
            fallback:{
               loader:'style-loader',
               options:{
                //insertInto:"#mydiv",
                singleton:true,
                //transform:"./transform.js"
               }
             },
              use:[       
               {
                 loader:'css-loader',
                 options:{
                   modules:{
                    localIdentName:'[path][name]_[local]_[hash:4]'
                   }                    
                 } 
               },
               {
                 loader:'postcss-loader',
                 options:{
                  ident:'postcss',
                  plugins:[
                    // require('autoprefixer')({
                    //   'overrideBrowsersList': [
                    //     ">1%","last 2 versions"
                    //   ]
                    // }),
                   require('autoprefixer')(), //配置公共的了,就不需要再设置
                   require('postcss-cssnext')()  //使用下一个css
                  ]
                 }
               },
               {
                loader:'less-loader'
               }        
              ]         
           })
         }
            ]
        },
      plugins:[
       new extractTextCss({
        filename:'[name].min.css'
       })
      ]
    }
  • 相关阅读:
    将python的代码文件打包成可执行文件
    SpringBoot整合JdbcTemplate连接Mysql
    Golang开发环境搭建
    java中的Lamdba表达式和Stream
    MySQL 优化1
    MySQL you *might* want to use the less safe log_bin_trust_function_creators variable
    MySQL mysqlbinlog
    MySQL 事件调度器
    MySQL 忘记密码解决办法
    MySQL 创建自定义函数(2)
  • 原文地址:https://www.cnblogs.com/slightFly/p/12293573.html
Copyright © 2020-2023  润新知