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

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

这是因为 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() {// `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`,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`,(error, stdout, stderr) => {if (error) {// 如果处理过的 (code: 1), 就不再继续执行, 也不用打印错误信息if (error.code !== 1) {console.error(`执行 grep 命令时出错: ${error.message}`);}return;}if (stderr) {console.error(`grep 命令输出错误: ${stderr}`);return;}console.log(`grep 命令执行完成`);exec(`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 命令执行完成`);},);},);});},],
};

说明

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

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

http://www.lryc.cn/news/486570.html

相关文章:

  • C++构造函数详解
  • POI实现根据PPTX模板渲染PPT
  • 【论文模型复现】深度学习、地质流体识别、交叉学科融合?什么情况,让我们来看看
  • 树的直径计算:算法详解与实现
  • conda创建 、查看、 激活、删除 python 虚拟环境
  • vs2022搭建opencv开发环境
  • NVIDIA NIM 开发者指南:入门
  • 探索Python网络请求新纪元:httpx库的崛起
  • 学了Arcgis的水文分析——捕捉倾泻点,河流提取与河网分级,3D图层转要素失败的解决方法,测量学综合实习网站存着
  • QQ 小程序已发布,但无法被搜索的解决方案
  • 【C++】拷贝构造 和 赋值运算符重载
  • 21.UE5游戏存档,读档,函数库
  • 「Mac玩转仓颉内测版14」PTA刷题篇5 - L1-005 考试座位号
  • Vue3引用高德地图,进行位置标记获取标记信息
  • 《C++设计模式:重塑游戏角色系统类结构的秘籍》
  • 深入浅出 Go 语言:现代编程的高效选择
  • RDIFramework.NET CS敏捷开发框架 V6.1发布(.NET6+、Framework双引擎、全网唯一)
  • vue路由的钩子函数?
  • 【Java】枚举类映射
  • 精华帖分享|浅谈金融时间序列分析与股价随机游走
  • 任意文件下载漏洞
  • LeetCode 445.两数相加 II
  • CentOS 7中查找已安装JDK路径的方法
  • springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)
  • RHCE的学习(21)
  • Ubuntu 18.04 配置sources.list源文件(无法安全地用该源进行更新,所以默认禁用该源)
  • 19.UE5道具掉落
  • MySQL —— MySQL逻辑架构与查询过程
  • ODOO学习笔记(12):自定义模块开发
  • Excel单元格中自适应填充多图