先上代码:

const HtmlWebpackPlugin = require('html-webpack-plugin')
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');module.exports = {entry: {//  index: './src/index.js',//  utils: './src/utils.js'index: path.resolve(__dirname, 'src/index.js'),utils: path.resolve(__dirname, 'src/utils.js')},output: {//path: __dirname + '/dist',//filename: '[name]-[chunkhash].js'path: path.resolve(__dirname, 'dist'),filename: '[name]_bundle.js'  //配合下面配置中的hash选项使用,可不加[chunkhash]},module: {rules: [{test: /\.css$/,//use: ['style-loader', 'css-loader']use: ExtractTextPlugin.extract({fallback: 'style-loader',use: 'css-loader'// fallback: {// 这里表示不提取的时候,使用什么样的配置来处理css//   loader: 'style-loader',//   options: {//     singleton: true // 表示将页面上的所有css都放到一个style标签内//   }// },// use: [//   {//     loader: 'css-loader',//     // options: {//     //   minimize: true //css-loader 1.0之后不支持该配置//     // }//   }// ]})}]},plugins: [new HtmlWebpackPlugin({title: 'My Test',filename: 'test.html',hash: true,chunks: ['utils']}),new HtmlWebpackPlugin({title: 'My App',filename: 'index.html',hash: true,chunks: ['index']}),//new ExtractTextPlugin('style.css')new ExtractTextPlugin({filename: '[name].min.css'})]
}
复制代码

如果直接安装的话,会安装"extract-text-webpack-plugin": "^3.0.2",执行webpack打包命令时会报错

原因是因为这个版本中还不能支持webpack4.0.0以上的版本,所以就需要安装webpack4.0以下的版本或者是安装extract-text-webpack-plugin4.0以上的版本。

解决方法:npm install extract-text-webpack-plugin@next --save-dev,会下载到4.0版本

参考: blog.csdn.net/gezilan/art…

allChunks属性

当为false的时候,只会提取初始化的时候引入的css,当allChunks属性为true时,会把异步引入的css也提取出来。

new ExtractTextWebpackPlugin({ // 在plugins中配置属性allChunks: false // true表示会把所有的css都提取出来,false只会把初始化的提取,默认是false
})
复制代码
  • 在src/css目录下新建一个components目录,并在components目录新建一个a.css,并添加代码
div{font-size: 20px;color: #000;
}
复制代码
  • 在src目录下新建components目录,并在components目录新建一个a.js,并引入a.css
import '../css/components/a.css';
复制代码
  • 在index.js中异步引入a.js
import(/* webpackChunkName: 'a' */ './components/a').then(function (a) {console.log(a);
})
复制代码
  • 执行打包webpack,会发现index.min.css中没有a.css中的样式,而在a.bundle.js中有引入的a.css的样式
(n.exports = i(4)(!1)).push([n.i, "div{\r\n    font-size: 20px;\r\n    color: #000;\r\n}", ""])
复制代码
  • 若将allChunks设置为true,会发现index.min.css中有a.css样式。

如果有多于一个extract-text-webpack-plugin示例的情形,请使用此方法每个实例上的 extract 方法。

const ExtractTextPlugin = require('extract-text-webpack-plugin');
// 创建多个实例
const extractCSS = new ExtractTextPlugin('stylesheets/[name]-one.css');
const extractLESS = new ExtractTextPlugin('stylesheets/[name]-two.css');
module.exports = {module: {rules: [{test: /\.css$/,use: extractCSS.extract(['css-loader', 'postcss-loader'])},{test: /\.less$/i,use: extractLESS.extract(['css-loader', 'less-loader'])},]},plugins: [extractCSS,extractLESS]
};
复制代码

extract-text-webpack-plugin相关推荐

  1. Webpack之插件html webpack plugin

    Webpack之插件html webpack plugin html-webpack-plugin插件 动态生成html文件并自动引入js文件 静态文件无需加载js或css文件,通过设置入口文件可以将 ...

  2. 【已解决】Html Webpack Plugin Error;html-withimg-loader无法正常解析html内的img

    升级webpack之后发现原本之前用的好好的配置报错了: 控制台报错: ERROR in Error: Parse Error: <img src={"default":&q ...

  3. webpack Plugin常用 optimization splitChunks UglifyJsPlugin sourceMap

    很多东西容易忘记,做个简单笔记 1.webpack loader 加载顺序 从后到前 例子 ['style-loader', 'css-loader','sass-loader'] 先sass最后st ...

  4. Sublime Text 3 Plugin Better!

    Package Control Cmake ConvertUTF Markdown preview MarkdownEditing Marking Changed Rows 转载于:https://w ...

  5. [转] webpack之plugin内部运行机制

    简介 webpack作为当前最为流行的模块打包工具,几乎所有的主流前端开发框架(React.Vue等)都会将其作为默认的模块加载和打包工具.通过简单的配置项,使用各种相关的loader和plugin, ...

  6. 霖呆呆的六个自定义Webpack插件详解-自定义plugin篇(3)

    霖呆呆的webpack之路-自定义plugin篇 你盼世界,我盼望你无bug.Hello 大家好!我是霖呆呆! 有很多小伙伴在打算学写一个webpack插件的时候,就被官网上那一长条一长条的API给吓 ...

  7. webpack 打包(plugin、loader 工作原理)

    模块化工具 由来 ES Modules 存在环境兼容问题 模块文件过多,网络请求频繁 所有的前端资源都需要模块化 概要 Webpack 作为 模块打包器(Module bundler),可以把零散的文 ...

  8. 翻译 | 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案

    原文地址: Critical CSS and Webpack: Automatically Minimize Render-Blocking CSS 原文作者: Anthony Gore 译者: 蜗牛 ...

  9. 分析vue-cli@2.9.3 搭建的webpack项目工程

    前言 已经有很多分析Vue-cli搭建工程的文章,为什么自己还要写一遍呢.学习就好比是座大山,人们沿着不同的路登山,分享着自己看到的风景.你不一定能看到别人看到的风景,体会到别人的心情.只有自己去登山 ...

  10. 如何将Webpack与React结合使用:深入的教程

    Updated to Babel 7 更新至Babel 7 In this tutorial we will see the basics of Webpack for React to get yo ...

最新文章

  1. Fail to find the dnn implementation. [Op:CudnnRNN]解决办法
  2. PTA 基础编程题目集 7-7 12-24小时制 C语言
  3. 什么样的编程语言,竟然能融资 1.6 亿?
  4. 如何防御DDoS攻击
  5. 小白自学Java框架,框架的全面解析总结
  6. 2、安装和连接mysql
  7. 领域应用 | 知识图谱在小米的应用与探索
  8. 数据结构_十字链表(C语言)
  9. 用python批量下载网易云音乐_python实现网易云音乐批量下载
  10. JavaScript中的replace替换
  11. eSIM卡崛起:传统运营商地位岌岌可危
  12. python爬取有声小说_python写的有声小说爬虫
  13. 2023西安交通大学药物分析专业学硕考研上岸经验
  14. JQuery 网页选项卡制作
  15. border-radius和border-image
  16. Java 爬虫微信公众号详情,并且破解微信图片跨域问题
  17. 《设计模式》12.组合模式(结构型)
  18. windows c语言目录操作函数,C/C++: C语言目录操作
  19. 基于MCR的MATLAB使用案例
  20. Neural Networks and Deep Learning读书笔记--神经网络应用:手写数字识别

热门文章

  1. iss版本服务器读取_【IIS7服务器管理工具下载】IIS7服务器管理 v2.1.9 官方版-开心电玩...
  2. 在Excel中如何利用VBA实现(符合条件)指定(空)行列的批量删除
  3. 网关屏蔽mac地址,linux下修改mac地址方法
  4. init.d,rc.d详解 Linux运行时详解
  5. 抄底公式---预测黑马
  6. 马库斯:DeepMind新出的机器心智网络不错,但有误导性
  7. 使用zabbix监控esxi
  8. K8s集群部署(四)------ Flannel网络部署
  9. [20180503]珅与分隔符.txt
  10. 被逮到一个初始状态考虑不周的Bug