美文网首页程序员
前端工程搭建入门(三)解析less,css

前端工程搭建入门(三)解析less,css

作者: 文者字清 | 来源:发表于2018-07-20 16:55 被阅读0次

第三步:解析less,css

配置

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');


module.exports = {
    entry: {
        index: './src/index.js',
    },
    output: {
        path: __dirname + '/release',
        filename: './bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /(node_modules)/,
                loader: 'babel-loader'
            },
            {
                test: /\.html$/,
                loader: 'html-loader'
            },
            {
                test: /\.less$/,
                loader: 'style-loader!css-loader!less-loader'
            },
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader?{"modules":true}'
            },

        ],
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: 'template/index.html'
        }),
        new webpack.HotModuleReplacementPlugin()
    ],
    devtool: 'source-map',
    devServer: {
        contentBase: path.join(__dirname, 'release'),
        port: 9000,
        hotOnly: true
    }
};

注意点

  • 解析 less 文件的配置,loader的顺序有 严格要求。loader 的加载顺序是 倒序,也就是 webpack 会先加载 less-loader ,再加载 css-loader ,最后加载 style-loader ,

    • less-loader : 把less代码解析成css代码
    • css-loader : 是解析 css 代码中的 @import 和 url()
    • style-loader : 通过 style 标签将 css 文件插入到 html 文件中

    综上,style-loader 一定是最后一个被加载,所以写在第一位;css-loader 解析 css 是第二步,less-loader 是 less -> css ,第一个加载,所以放在最后一个

  • 解析 css ,并且支持css module语法

    • 使用方式如下:
      css module用法
    • css 代码如下
      css代码
    • loader配置:
    {
        test: /\.css$/,
        loader: 'style-loader!css-loader?{"modules":true}'
    },
    
  • 说一下loader 在webpack.config.js中 配置的几种书写方式(参考webpack中文网

    • 对象形式:
      module: {
          rules: [
              {
                  test: /\.css$/,
                  use: [
                      { loader: 'style-loader' },
                      {
                          loader: 'css-loader',
                          options: {
                              modules: true
                          }
                      }
                  ]
              }
          ]
      }
      
    • 内联形式1:
      module: {
          rules: [
              {
                  test: /\.css$/,
                  loader: 'style-loader!css-loader?{"modules":true}'
              },
          ]
      }
      
    • 内联形式2:
      module: {
              rules: [
                  {
                      test: /\.css$/,
                      loader: 'style-loader!css-loader?modules'
                  },
              ]
          }
      

    关于这三种写法,网上也没找到相关介绍,据我猜测,两种内联写法最后都被解析成对象,而最后一种写法完全遵循url的参数格式(只是目测😅),想要灵活运用各种loader,还是要把这个文档多看看

相关文章

网友评论

    本文标题:前端工程搭建入门(三)解析less,css

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