如何在 Gulp 中将 CSS 文件的内容注入 HTML?

How to inject content of CSS file into HTML in Gulp?(如何在 Gulp 中将 CSS 文件的内容注入 HTML?)
本文介绍了如何在 Gulp 中将 CSS 文件的内容注入 HTML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我需要将样式表的内容插入到 HTML 页面的 <head> 中.我如何在 Gulp 中做到这一点?

I need to insert the content of a stylesheet into the <head> of an HTML page. How can I do it in Gulp?

之前(我所拥有的):

<head>
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>

之后(我想要的):

<head>
  <style>
     p { color: pink; }
  </style>
</head>

请注意,我不需要将 CSS 内联到元素中,只需将 CSS 的内容放在 <head> 中即可.

Note that I do not need to inline CSS into the elements, but just put the contents of CSS in the <head>.

推荐答案

你可以轻松使用 gulp-replace,像这样:

You could easily use gulp-replace, like so:

var gulp = require('gulp'),
    replace = require('gulp-replace'),
    fs = require('fs');

// in your task
return gulp.src(...)
  .pipe(replace(/<link href="style.css"[^>]*>/, function(s) {
      var style = fs.readFileSync('style.css', 'utf8');
      return '<style>
' + style + '
</style>';
  }))
  .pipe(gulp.dest(...));

您还可以轻松修改替换 RegEx 以处理不同的文件.

You can also easily modify the replacement RegEx to work with different files, too.

return gulp.src(...)
  .pipe(replace(/<link href="([^.].css)"[^>]*>/g, function(s, filename) {
      var style = fs.readFileSync(filename, 'utf8');
      return '<style>
' + style + '
</style>';
  }))
  .pipe(gulp.dest(...));

这篇关于如何在 Gulp 中将 CSS 文件的内容注入 HTML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I can get a text of all the cells of the table using testcafe(如何使用 testcafe 获取表格中所有单元格的文本)
node_modules is not recognized as an internal or external command(node_modules 未被识别为内部或外部命令)
How can I create conditional test cases using Protractor?(如何使用 Protractor 创建条件测试用例?)
PhantomJS and clicking a form button(PhantomJS 并单击表单按钮)
Clicking #39;OK#39; on alert or confirm dialog through jquery/javascript?(在警报上单击“确定或通过 jquery/javascript 确认对话框?)
QunitJS-Tests don#39;t start: PhantomJS timed out, possibly due to a missing QUnit start() call(QunitJS-Tests 不启动:PhantomJS 超时,可能是由于缺少 QUnit start() 调用)