Grunt 任务:删除 HTML 文件中标记之间的行

2023-12-06

在开发中,我们测试未缩小的 css 文件。在构建时我们压缩并组合它们。我想然后删除未压缩的CSSlink前两个注释之间的元素,并取消注释link到生成的combined.min.css文件。有任何想法吗!

<!-- __css -->
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/base.css" />
<!-- css__ -->

<!-- __cssmin
<link rel="stylesheet" href="css/combined.min.css" />
cssmin__ -->

Thanks!


您没有提及您是如何进行构建的(通常这将像下面的 Gruntfile 中的默认任务一样组合起来),但如果您需要的只是将单个引用更改为缩小文件的单个链接,那么这很简单具有grunt-usemin执行工作 - 请参阅 Gruntfile 中的替换任务。

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>usemin</title>
  <!-- build:css css/combined.min.css -->
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/base.css" />
  <!-- endbuild -->
</head>
<body>
<h1>usemin</h1>
</body>
</html>

咕噜文件

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    copy: {
      dist: {
        files: [ {src: 'index.html', dest: 'dist/index.html'} ]
      }
    },

    'useminPrepare': {
      options: {
        dest: 'dist'
      },
      html: 'index.html'
    },

    usemin: {
      html: ['dist/index.html']
    }
  });

  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-usemin');

  grunt.registerTask('default', ['useminPrepare', 'copy', 'concat', 'cssmin', 'usemin']);
  grunt.registerTask('replace', ['copy', 'usemin']);
};

结果 HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>usemin</title>
  <link rel="stylesheet" href="css/combined.min.css">
</head>
<body>
<h1>usemin</h1>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grunt 任务:删除 HTML 文件中标记之间的行 的相关文章

随机推荐

  • 如何使用 spring-data-couchbase 为特定 Couchbase 文档设置 TTL?

    如何使用 spring data couchbase 为特定的 couchbase 文档设置 TTL 生存时间 我知道有一种方法可以使用文档符号设置到期时间 如下所示 Document 过期 10 http docs spring io s
  • IIS FTP 7.5 扩展性(IFtpLogProvider 并将 FTP 故障记录到事件日志中)

    任何非常熟悉 IIS 中 FTP 7 5 可扩展性的人都知道我可能做错了什么吗 我在使 IFtpLogProvider 的实现正常工作以进行自定义日志记录时遇到严重困难 我想做的就是将超出静态阈值的故障记录到事件日志中 并经常进行垃圾收集
  • Python:tarfile 流

    我想从 tarball 中读取一些文件并将其保存到新的 tarball 中 这是我写的代码 archive dum 2164 archive tar Read input data input tar tarfile open archiv
  • ASP.NET:将数据从内容页传递到母版页[重复]

    这个问题在这里已经有答案了 我有一个名为headerLabel在我的母版页中 我想将其文本设置为内容页面中的标题 我该怎么做呢 在您的主页上创建一个公共属性 类似于 public string LabelValue get return t
  • 如何在openGL中纹理随机凸四边形

    好吧 为了制作一个 我的世界 模组 我开始查找 openGL 教程 我对此仍然不太了解 因为我认为在进行我想要的小修改时我真的不应该这样做 但这让我很头疼 我想要做的就是能够将纹理正确映射到不规则的凹四边形 像这样 在尝试在游戏中运行代码之
  • chrome.filesystem 保存文件而不提示位置

    我可以将文件保存在自定义位置 home Users user1 带名字file1 txt 我有这个代码 chrome fileSystem chooseEntry type openDirectory function entry chro
  • 在 VB.net 中打印外部 PDF 文档

    我知道这个问题以前曾被问过 但我的情况有点不稳定 基本上 我正在尝试打印使用以前的 Windows 窗体生成的 PDF 文件 我可以毫无问题地找到该文件 并且我使用了从 MSDN 帮助论坛找到的以下代码 Dim p As New Syste
  • 返回响应后关闭 HTTP 服务器

    我正在构建一个基于命令行的 Go 机器人 它与 Instagram API 交互 Instagram API 基于 OAuth 因此不太适合基于命令行的应用程序 为了解决这个问题 我在浏览器中打开适当的授权 URL 并使用我为重定向 URI
  • 如何正确加载数千条记录到Realm?

    我尝试使用 Realm 将大约 8000 条记录保存到磁盘中 但它阻塞了 UI 结果 我用Realm asyncOpen在后台线程中执行数据保存 当我尝试以这种方式保存大量记录时 问题是 CPU 使用率 100 如何正确加载数千条记录到Re
  • Discord.py 从机器人向机器人发送斜线命令

    我正在开发一个机器人 该机器人应该在 Discord 频道中发送斜杠命令 并且这些斜杠命令将由同一频道中的另一个机器人接收 但是 当我发送格式为斜杠命令的消息时 另一个机器人不会将其检测为命令 而是将其检测为简单的文本消息 这是我的代码 i
  • 如何枚举所有分区并聚合结果

    我有一个多分区的有状态服务 我怎样才能枚举它的所有分区和聚合结果 使用服务远程处理用于客户端和服务之间的通信 您可以使用枚举分区FabricClient var serviceName new Uri fabric MyApp MyServ
  • "yieldbreak;" 是什么意思?在 C# 中做什么?

    我在MSDN上看到过这样的语法 yield break 但我不知道它有什么作用 有人知道吗 它指定迭代器已结束 你可以想到yield break as a return不返回值的语句 例如 如果将函数定义为迭代器 则函数的主体可能如下所示
  • Nodejs 异步/等待 mysql 查询

    我有一个当前结构如下的nodejs项目 我需要在客户端表上插入一个注册表并从该表返回最后插入的ID 以便我可以在第二个表中使用它 但我需要等到插入完成客户表 然后将客户 ID 插入到我的第二个表中 我正在尝试使用 async await 但
  • useEffect 中无限循环

    我一直在使用 React 16 7 alpha 中的新钩子系统 当我处理的状态是对象或数组时 我会陷入 useEffect 中的无限循环 首先 我使用 useState 并使用一个空对象启动它 如下所示 const obj setObj u
  • ARIMA 产生的斜率直线

    我对使用 SARIMA 模型的时间序列很陌生 我按照教程构建模型并尝试预测未来趋势 一开始一切进展顺利 但当产生结果时 它显示斜率直线 我在 Jupyter NoteBook 上构建它 我首先检查了我的数据 并将数据可视化 但实际上 这似乎
  • 在实体框架中添加存储过程复杂类型

    我试图在实体框架中使用一个不返回任何内容的存储过程 我做了以下事情 添加了一个函数 右键单击存储过程 gt 添加 gt 函数导入 gt 复杂类型 gt 获取列信息 gt 创建新的复杂类型 我的函数名称 summarySP Result 构建
  • Android中如何删除progressBar中的文字?

    我的应用程序中有一个进度条 但它显示了一些默认文本 我想删除这些文本 请帮我如何删除文字 这是我的代码片段 ProgressDialog progDialog new ProgressDialog ProgressBarExample th
  • 使用perl查找连续两组括号的正则表达式是什么?

    我有带有不同括号的行 例如 sdfsfs sfdsfd sdfsfs sfdsfd sfdsfd sdfsfs sfdsfd sfdsfd sfdsfd sdfsfs sfdsfd sfdsfd sfdsfd sfdsfd sdfsfs s
  • 如何在 PHP 中将 number_format 的输出转换回数字?

    PHP无法识别1 200 00 由生成number format 但只有1200 00 这个问题的一般解决方案是什么 您可以删除任何不是数字或小数点的字符并使用floatval number 1200 00 parsed floatval
  • Grunt 任务:删除 HTML 文件中标记之间的行

    在开发中 我们测试未缩小的 css 文件 在构建时我们压缩并组合它们 我想然后删除未压缩的CSSlink前两个注释之间的元素 并取消注释link到生成的combined min css文件 有任何想法吗 Thanks 您没有提及您是如何进行