当前位置: 首页 > news >正文

extract-text-webpack-plugin用法

一 背景
最近在做一个项目,项目本身是用vue-cli创建的单页面应用,由于项目扩展需要创建多页面,所以需要对不同的html分别进行css文件打包。于是开始研究extract-text-webpack-plugin插件。
二 插件介绍
打包样式有两种方法,一种是使用style-loader自动将css代码放到生成的style标签中,并且插入到head标签里。另一种就是使用extract-text-webpack-plugin插件,将样式文件单独打包,打包输出的文件由配置文件中的output属性指定。然后我们在入口HTML页面写个link标签引入这个打包后的样式文件。
三 插件使用
1 插件安装:

# for webpack 3 
npm install --save-dev extract-text-webpack-plugin
# for webpack 2 
npm install --save-dev extract-text-webpack-plugin@2.1.2
# for webpack 1 
npm install --save-dev extract-text-webpack-plugin@1.0.1

2 插件使用
在webpack.config.js中引入

const ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader", // 编译后用什么loader来提取css文件
          use: "css-loader" // 指需要什么样的loader去编译文件,这里由于源文件是.css所以选择css-loader
        })
      }
    ]
  },
  plugins: [
    new ExtractTextPlugin("styles.css"),
  ]
}

四 API

new ExtractTextPlugin([id: string], filename: string, [options])

  1. id此插件实例的唯一标识。(仅限高级用法;默认情况下,自动生成)
  2. filename结果文件的文件名。可能包含[name],[id]和[contenthash]。
    [name] 块的名称
    [id] 块的标识
    [contenthash] 提取文件内容的哈希值
  3. options
  • allChunks 从所有其他块中提取(默认情况下,它仅从初始块中提取)
  • disable 禁用插件

ExtractTextPlugin.extract([notExtractLoader], loader, [options]
从现有加载器创建提取加载器。

  1. notExtractLoader(可选)在未提取css时应使用的加载程序(即在其他块中时allChunks: false)
  2. loader 应该用于将资源转换为css导出模块的加载器。
  3. options
    publicPath覆盖publicPath此加载程序的设置。

五 扩展
该实例其实还有一个扩展函数。如果你有多个ExtractTextPlugin,你应该使用它。

let ExtractTextPlugin = require('extract-text-webpack-plugin');

// multiple extract instances
let extractCSS = new ExtractTextPlugin('stylesheets/[name].css');
let extractLESS = new ExtractTextPlugin('stylesheets/[name].less');

module.exports = {
  ...
  module: {
    loaders: [
      {test: /\.scss$/i, loader: extractCSS.extract(['css','sass'])},
      {test: /\.less$/i, loader: extractLESS.extract(['css','less'])},
      ...
    ]
  },
  plugins: [
    extractCSS,
    extractLESS
  ]
};

相关文章:

  • 《从0开始学Elasticsearch》—初识Elasticsearch
  • vue 打包 以及跨域问题组织
  • 深入了解以太坊
  • Python之 Virtualenv简明教程
  • dva中组件的懒加载
  • 「澳洋主数据项目」主数据促企业变革
  • phpstudy中apache的默认根目录的配置
  • 面试总结之人工智能AI(Artificial Intelligence)/ 机器学习(Machine Learning)
  • ActiveMQ之Linux下安装
  • springboot读取配置文件属性
  • PAT A1017 优先队列
  • 后端_ThinkPHP5
  • 从程序员到架构师的最佳技术成长之路
  • Javascript 原型链
  • 交换综合实验一
  • 5、React组件事件详解
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Java超时控制的实现
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • OSS Web直传 (文件图片)
  • vue自定义指令实现v-tap插件
  • Vultr 教程目录
  • zookeeper系列(七)实战分布式命名服务
  • 给初学者:JavaScript 中数组操作注意点
  • 基于web的全景—— Pannellum小试
  • 解析 Webpack中import、require、按需加载的执行过程
  • 理解在java “”i=i++;”所发生的事情
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用SAX解析XML
  • 我从编程教室毕业
  • 鱼骨图 - 如何绘制?
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 追踪解析 FutureTask 源码
  • linux 淘宝开源监控工具tsar
  • 仓管云——企业云erp功能有哪些?
  • ​如何在iOS手机上查看应用日志
  • !$boo在php中什么意思,php前戏
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (4)Elastix图像配准:3D图像
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (转)ABI是什么
  • ./configure,make,make install的作用
  • .NET Core 2.1路线图
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 材料检测系统崩溃分析
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Android] Implementation vs API dependency
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]