Skip to content

Instantly share code, notes, and snippets.

@joeLepper
Last active January 3, 2016 01:59
Show Gist options
  • Save joeLepper/8393135 to your computer and use it in GitHub Desktop.
Save joeLepper/8393135 to your computer and use it in GitHub Desktop.
gulp-jade / gulp-rename weirdness
gulp.task('jade', function(){
gulp.src(['src/js/directives/**/jade/*.jade', 'src/jade/views/*.jade'])
.pipe(jade({ pretty : true }))
.pipe(rename(function(dir,base,ext){
var result = base + ext;
return result;
}))
.pipe(gulp.dest('./src/html'));
});
@yocontra
Copy link

@joeLepper gulp.src takes one glob or an array of globs. The way you are doing .src wouldn't include both globs. You should be doing

gulp.src(['src/js/directives/**/jade/*.jade', 'src/jade/views/*.jade'])

@yocontra
Copy link

As for pathing:

By default gulp will use the relative path of base vs. cwd to figure out the output filename

If your CWD is ~/project and your glob is src/js/directives/**/jade/*.jade then this full path ~/project/src/js/directives/folder/jade/test.jade will have a base of ~/project/src/js/directives/ and a relative path of folder/jade/test.jade

To flatten the path you need to modify the base of the file (which by default is where the glob starts)

file.base = path.dirname(file.path) if you want to remove all folder structure and just put out flat files

@yocontra
Copy link

This would be a good use case for a plugin if there isn't one already

@joeLepper
Copy link
Author

Yeah. The syntax error is an oversight on my part. I'm actually storing all of these paths in variables in one location so that I can pass them in a way that makes sense to me. When I threw the gist together I forgot to copy the brackets, because computers are hard.

I've amended the gist to reflect this.

I'll start looking at how to spit out flat file tomorrow.

@joeLepper
Copy link
Author

Dear future humans, use this to solve your problem: https://npmjs.org/package/gulp-flatten

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment