webpack4系列教程(五):处置惩罚项目中的资本文件(二)

1. 在项目中运用 less 

在 src/assets/ 下新建 common.less :

body{
  background: #fafafa;
  padding: 20px;
}

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

在 main.js 中引入 common.less :

import './assets/style/common.less'

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

装置 less-loader:

npm i less-loader -D

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

增加 rules:

     {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      }

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

打包以后,在浏览器翻开 dist/index.html,less文件中的款式已经由过程 style 标签载入了:

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

2. 运用MiniCssExtractPlugin

我们之前的款式代码都是经由过程 style 标签载入的,那末怎样经由过程 link 引入CSS文件的体式格局完成呢?

这就须要运用一个插件,在webpack3中一般运用ExtractTextWebpackPlugin,但是在webpack4中已不再支撑ExtractTextWebpackPlugin的正式版,而测试版本又不够稳固,因而我们运用MiniCssExtractPlugin替换。起首装置:

npm install --save-dev mini-css-extract-plugin

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

在webpack.config.js 中引入并增加 plugins :

const MiniCssExtractPlugin = require('mini-css-extract-plugin')

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

new MiniCssExtractPlugin({
      filename: "[name].css"
    }),

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

 修正 CSS 和 less 的 rules:

{
        test: /.css$/,
        use: [
          // 'style-loader',
          {
            loader: MiniCssExtractPlugin.loader
          },
          'css-loader'
        ]
      },
      {
        test: /.less$/,
        use: [
          // 'style-loader',
          {
            loader: MiniCssExtractPlugin.loader
          },
          'css-loader',
          'less-loader'
        ]
      }

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

npm run build 以后,可见head中引入了一个 main.css 文件:

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

也恰是我们在 common.less 和 modal.css 中的代码

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

3. postcss-loader

postcss-loader 能够协助我们处置惩罚CSS,如自动增加浏览器前缀。

npm i -D postcss-loader autoprefixer

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

在根目录下建立 postcss.config.js:

const autoprefixer = require('autoprefixer')

module.exports = {
  plugins: [
    autoprefixer({
      browsers: ['last 5 version']
    })
  ]
}

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

修正 css 和 less 的 rules:

{
        test: /\.css$/,
        use: [
          // 'style-loader',
          {
            loader: MiniCssExtractPlugin.loader
          },
          { loader: 'css-loader', options: { importLoaders: 1 } },
          'postcss-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          // 'style-loader',
          {
            loader: MiniCssExtractPlugin.loader
          },
          'css-loader',
          'postcss-loader',
          'less-loader'
        ]
      }

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

在 modal.css中到场:

.flex{
    display: flex;
}

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

打包以后翻开 main.css,可见浏览器前缀已加上了:

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

《webpack4系列教程(五):处置惩罚项目中的资本文件(二)》

    原文作者:前端小酱
    原文地址: https://segmentfault.com/a/1190000017883612
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞