【问题标题】:Gulp using gulp-data and gulp-jade with directoryGulp 使用 gulp-data 和 gulp-jade 与目录
【发布时间】:2016-01-21 10:15:48
【问题描述】:

我有一个 gulp 工作流,一切正常,但它似乎只适用于最上面的文件,例如:public/index.html,但如果我想使用public/products/item.htmlgulp-data 会抛出错误并寻找src/json/item.json 而不是src/json/products/item.json

我认为有问题,因为我使用了path.basename(file.path, '.jade') + '.json'),它只会返回文件名,当然,如果是这样,如果它抛出类似products/item.jade的东西,如何让它也提供目录?

var basePath = {
    src: 'src/',
    dest: 'public/'
}

var src = {
    pages: basePath.src + 'jade/',
    json : basePath.src + 'json'
}

gulp.task('make:pages', function() {
    return gulp.src(src.pages + '**/!(_)*.jade')
        .pipe(plumber({
            errorHandler: onError
        }))
        .pipe(data(function(file) {
            return JSON.parse(fs.readFileSync('src/json/' + path.basename(file.path, '.jade') + '.json'));
        }))
        .pipe(jade({
            pretty: true
        }))
        .pipe(gulp.dest(basePath.dest));
});

【问题讨论】:

    标签: javascript json node.js gulp


    【解决方案1】:

    如果我使用相同的文件夹结构:

    src
    ├── fonts
    ├── jade
    │   ├── _layout.jade
    │   ├── index.jade
    │   ├── product
    │   │   └── item.jade
    │   ├── partials
    │   │   ├── _footer.jade
    │   │   └── _header.jade
    ├── js
    ├── json
    │   ├── index.json
    │   ├── product
    │   │   └── item.json
    

    我用这个代替:

    return JSON.parse(fs.readFileSync(file.path.replace(/jade/g, 'json')));
    

    它有效! :)

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      相关资源
      最近更新 更多