将 CSS url 替换为 Gulp 任务



我尝试使用Gulp替换index.html中CSS文件的路径。问题是我有多个主题名称不同的项目,并且分发包中源文件的路径不同

索引.html

<link href="app/style/themes/dark/theme.css" id="hmi-theme" rel="stylesheet" />

在我的分发包中,主题被复制到类似 src\projects\project\app\style\themes 之类的东西下

dist/index.html

<link href="[set the path here/]app/style/themes/dark/theme.css" id="hmi-theme" rel="stylesheet" />

以下是使用 gulp-find 在索引.html中找到 url 的尝试:

var gulp = require('gulp');
var find = require('gulp-find');
var replace = require('gulp-replace');
gulp.task('templates', function(){
    gulp.src(['index.html'])
        .pipe(find(/app/style/themes/([^"]*)/g))
        .pipe(gulp.dest('file.txt'));

这行得通,我在目标文件中有值。但是是否可以将此值与 gulp-replace 一起使用来更改 HTML 文件中的值?

我也尝试过类似的东西:

.pipe(replace(/app/style/themes/([^"]*)/g, "dist/" + find(/app/style/themes/([^"]*)/g)))

但索引.html中的值是:

dist/[object Object]

好的,我终于找到了解决方案:

return gulp.src(path.join(projectDir, 'index.html'))
  .pipe(replace(/app/style/themes/([^"]*)/g, function(cssPath) {
      return "my-new-path/" + cssPath;
  } ))
  .pipe(gulp.dest(distDir));

相关内容

  • 没有找到相关文章

最新更新