webpack4 零丁抽离打包 css 的新完成

webpack4 零丁抽离打包 css 的新完成

媒介

之前我们运用的打包 css 不过两种体式格局:① 将 css 代码打包进 进口 js 文件中;② 运用第三方插件(extract-text-webpack-plugin)完成【注重,该插件在 webpack4 中已不引荐运用,而且会涌现种种稀里糊涂的 bug】

恰是基于对以上两种体式格局瑕玷的思索,连系我的实际运用历程,我以为今后我们应当完整摒弃掉上述两种体式格局,这里引荐一种一种新的完成体式格局:file-loader

file-loader

我先给个 file-loader 的运用说明吧(传送门:
https://github.com/webpack-co…

在我们的传统认知中 file-loader 大多是用来处置惩罚 图象元素的,实在假如你仔细看过上面的谁人传送门的话,才邃晓我们一直以来是被被误导了,下面我给出几个官方的运用例子吧

传统的处置惩罚图象
module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {},
          },
        ],
      },
    ],
  },
};
处置惩罚 css 【本文重点】
const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: {
        app: './src1/index.js',
        print: './src1/print.js'
    },
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    module: {
        rules: [
            { // loader 图片
                test: /\.(png|svg|jpg|gif)$/,
                use: ['file-loader']
            },
            { // 处置惩罚字体
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                use: [
                    'file-loader'
                ]
            },
            {
                // 零丁打包出 css
                test: /\.css$/,
                use: ['file-loader']
            }
        ]
    },
    plugins: [
        new CleanWebpackPlugin(['dist']),
        new HtmlWebpackPlugin({ 
            title: 'webpack4 extract css methord of new',
            template: './src1/index.html',
            filename: 'index.html',
            minify: {
                collapseWhitespace: true
            },
            hash: true
        })
    ],
    mode: "production"
};

上面这个代码是我亲身实测过的,人人能够宁神自创,运用了 file-loader 来处置惩罚 css 后,就不再须要分外的插件了,固然了,假如你须要指定输出的 css 文件名和途径,能够这么写 user: ['file-loader?name=[name].bundle[hash].css']等,这里的写法就是相似 get 体式格局的传参那样,?标记后面带参数名即可

仅供参考,假如你有什么更好的发起能够 contact 我哦

声明

原创手敲不容易,转载请说明出处,感谢。我是拉丁小毛,迎接人人关注我哦,一同交换,共同进步。有题目能够
邮我哦(util.you.com@gmail.com)

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