0

我正在尝试使用gulp-replace-task替换文件中的文本index.php。我知道这可以在.html,.css.js文件中完成,但似乎无法让它在.php文件中工作。

有人能帮帮我吗?

这是我的代码:

gulp.task('header', function() {

return gulp.src(rootPath + 'templates/header.php')

    .pipe(replace({
        patterns: [{
            json: {
                'main.css': 'style.css'
            }
        }]
    }))
    // Save the hashed css file
    .pipe(gulp.dest(rootPath + 'templates/header.php'));
});
4

1 回答 1

1

不要使用“json”对象来查找/替换,而是使用下面 gulpfile.js 中的 RegEx 语法。您最终会build/php/templates/header.php得到包含替换文本的内容:

<?php
    $color = "blue";
?>
<head>
    <link rel="stylesheet" src="style.css">
</head>
<body>
    Your color is <?php echo $color; ?>
<body>

gulpfile.js

var gulp = require('gulp')
var replace = require('gulp-replace-task')

var config = {
   src : 'src/php/**/*',
   build: 'build/php'
}

gulp.task('build', function(cb) {
   gulp.src(config.src)
      .pipe(replace({
         patterns: [
            {
               match: /COLOR/,
               replacement: 'blue'
            },
            {
               match: /main.css/,
               replacement: 'style.css'
            }
         ]
      }))
      .pipe(gulp.dest(config.build))

   cb()
})

gulp.task('watch', function(cb) {
   gulp.watch(config.src, ['build']) 
})

gulp.task('default', ['build', 'watch'])

头文件.php

<?php
    $color = "COLOR";
?>
<head>
    <link rel="stylesheet" src="main.css">
</head>
<body>
    Your color is <?php echo $color; ?>
<body>

项目文件结构

$ tree -I node_modules
.
├── build
│   └── php
│       └── templates
│           └── header.php
├── gulpfile.js
├── package.json
└── src
    └── php
        └── templates
            └── header.php

6 directories, 4 files
于 2015-12-01T20:36:59.053 回答