Webpack 1.13.2 执行 shell 命令解决 打印时没有背景色和文字颜色的问题

news2024/11/14 7:18:31

这是因为 Webpack 1.13.2 不支持新的插件钩子 API。Webpack 1 的插件系统使用的是 plugin 方法,而不是 Webpack 4+ 中的 hooks

在 Webpack 1 中,你可以使用以下代码来确保 sed 命令在打包完成后执行:

const { exec } = require('child_process');

module.exports = {
  // 你的其他 Webpack 配置
  plugins: [
    function() {
      this.plugin('compile', function() {
        exec(
          `grep -F '@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}' node_modules/bootstrap/dist/css/bootstrap.min.css && sed -i 's|@media print{\\*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}|@media print{|g' node_modules/bootstrap/dist/css/bootstrap.min.css`,,
          (error, stdout, stderr) => {
            if (error) {
              console.error(`执行 sed 命令时出错: ${error.message}`);
              return;
            }
            if (stderr) {
              console.error(`sed 命令输出错误: ${stderr}`);
              return;
            }
            console.log(`sed 命令执行结果: ${stdout}`);
          }
        );
      });
    },
  ],
};

说明

  • 先通过 grep 所有是否需要修改, 如果不需要修改就不改了, 否则在 --watch 模式下会死循环的 build
  • this.plugin('compile', callback)compile 事件在 Webpack 编译开始之前触发,因此 sed 命令会在打包之前执行。
  • exec 命令直接在 compile 钩子中执行 sed,确保替换操作在打包完成后运行。

以上的 plugin 解决了引用 bootstrap 的 css 后, 打印时没有背景色和文字颜色的问题.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2240010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Python+Django+Vue3+MySQL实现的前后端分类的商场车辆管理系统

项目名称:基于PythonDjangoVue3MySQL实现的前后端分离商场车辆管理系统 技术栈 开发工具:PyCharm、Visual Studio Code (VSCode)运行环境:Python 3.10、MySQL 8.0、Node.js 18技术框架:Django 5、Vue 3.4、Ant-Design-Vue 4.12 …

JAVA后端生成图片滑块验证码 springboot+js完整案例

前言 现在大部分网部都是图片滑块验证码,这个得要与后端联动起来才是确保接口安全性 通过我们系统在发送手机短息时都会选进行滑块验证,但是我们要保证发送短息接口的全安,具体路思如下 那么这个滑块的必须是与后端交互才能保证安全性&…

人工智能大比拼(3)

已知x-,y-6,且下述表达式的值与x的取值无关,求y -10x2y7xy 上述这个很简单的数学题,可是在各家AI之间出现了争议,本期我使用了四个AI:kimi,商量,文心一言,chatyy 先来看一下kimi的表…

SQLI LABS | Less-45 POST-Error Based-String-Stacked-Bilnd

关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-45/ 本关是堆…

sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?

什么是Pump 扫链机器人,它的盈利逻辑优化策略是什么? Pump 扫链机器人,通过智能化、自动化的买卖操作帮助投资者实现快速盈利。在此基础上,我们对该机器人的盈利逻辑进行了深度优化,涵盖了买入策略和止盈策略的各个方面…

MYSQL SQL优化总结【快速理解】

1、优化insert操作 批量插入,防止大量与数据库进行访问 手动控制事务,减少事务的频繁开启和提交。 主键顺序插入 2、优化主键 主键优化的点就是避免主键过长,因为如果有二级索引,叶子节点存储的数据时间上是主键,如果主…

深入计算机语言之C++:String的模拟实现

🔑🔑博客主页:阿客不是客 🍓🍓系列专栏:从C语言到C语言的渐深学习 欢迎来到泊舟小课堂 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 一、模拟实现 string 库 1.1 string 的成员变量…

植物大战僵尸杂交版v2.6.1最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于11月3日更新了植物大战僵尸杂交版2.6.1版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接:https://pan.quark.cn/s/279e7ed9f878 新…

【Pikachu】目录遍历实战

既然已经决定做一件事,那么除了当初决定做这件事的我之外,没人可以叫我傻瓜。 1.目录遍历漏洞概述 目录遍历漏洞概述 在Web功能的设计过程中,开发者经常会将需要访问的文件作为变量进行定义,以实现前端功能的灵活性。当用户发起…

[ 网络安全介绍 5 ] 为什么要学习网络安全?

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

项目技术栈-解决方案-注册中心

项目技术栈-解决方案-注册中心 Zookeeper、Eureka、Nacos、Consul和Etcd参考文章 服务注册中心(Registry):用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client …

除了 Postman,还有什么好用的 API 测试工具吗

尽管 Postman 提供了团队协作的功能,但是免费版本的功能较为基础,付费版的价格对于小型团队或个人开发者来说可能较高。而且访问 Postman 有时会非常慢,太影响体验了。 鉴于上述局限性,Apifox 成为了一个很好的替代选择。Apifox …

WPF学习之路,控件的只读、是否可以、是否可见属性控制

C#的控件学习之控件属性操作 控件的只读、是否可以、是否可见,是三个重要的参数,在很多表单、列表中都有用到,正常表单控制可以在父层主键控制参数是否可以编辑和可见,但是遇到个别字段需要单独控制时,可以在初始化wi…

LabVIEW开发相机与显微镜自动对焦功能

自动对焦是显微成像系统中的关键功能,通常由显微镜的电动调焦模块或特定的镜头系统提供,而工业相机则主要用于高分辨率图像的采集,不具备独立的自动对焦功能。以下是自动对焦的工作原理、实现方式及实际应用案例。 1. 自动对焦的工作原理 &a…

IBM 开源的文档转化利器「GitHub 热点速览」

上周的热门开源项目,Star 数增长犹如坐上了火箭,一飞冲天。短短一周就飙升了 6k Star 的多格式文档解析和导出神器 Docling,支持库和命令行的使用方式。全新的可视化爬虫平台 Maxun,则在刚开源时便轻松斩获了 4k Star。而本地优先…

STM32完全学习——点亮LED灯

一、寄存器描述 首先我们知道STM32对外设的操作,是靠对寄存器的设置来完成的。因此我们想要点亮LED灯,就需要知道端口的控制寄存器,然后给寄存器设置不同的值就可以让端口来输出0或1,首先我这里使用的是GPIOA这个端口的0-8位来做…

【MongoDB】MongoDB的核心-索引原理及索引优化、及查询聚合优化实战案例(超详细)

文章目录 一、数据库查询效率问题引出索引需求二、索引的基本原理及作用(一)索引的创建及数据组织(二)不同类型的索引(三)索引的额外属性 三、索引的优化与查询计划分析(一)通过prof…

约束(MYSQL)

not null(非空) unique(唯一) default(默认约束,规定值) 主键约束primary key(非空且唯一) auto_increment(自增类型) 复合主键 check&#xff08…

如何保证RabbitMQ的可靠性传输

文章目录 producer到broke生产者到交换机:confirm交换机到队列:returns模式队列溢出:可以采用死信等方式①ConfirmCallback接口②ReturnCallback接口 Broke内部Broke到达消费者 producer到broke 发送方确认 生产者到交换机:conf…

数据库参数备份

MySQL #!/bin/bash # 获取当前日期和时间的时间戳 TIMESTAMP$(date "%Y%m%d-%H%M%S")# 0、创建目录 mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间 echo "1、获取所有命名空间" NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-…