coffeescript - grunt-contrib-coffee one-to-one compile -
i have several files named:
- jquery.a.b.coffee
- jquery.a.c.coffee
- jquery.a.d.coffee
and compiled 1 jquery.js file in output directory.
although guess behavior might nice in cases, have them compile different files jquery.a.b.js, jquery.a.c.js , on. how can tell grunt-contrib-coffeescript so?
my gruntfile.js looks this:
module.exports = function (grunt) { grunt.initconfig({ coffee: { dist: { files: [{ expand: true, flatten: true, cwd: 'app/webroot/coffee', src: ['{,*/}*.coffee'], dest: 'app/webroot/js', ext: '.js' }] } } }); grunt.loadnpmtasks('grunt-contrib-coffee'); }; thanks help!
the problem lies on filenames having multiple dots.
if jquery-a-b.coffee, jquery-a-c.coffee etc, have seen expected output.
it known issue (extension after last period only) , grunt developers made on purpose.
here quote 1 of them:
there's 2 ways ext work; consider after first dot extension, or after last dot extension. chose former because use-case more common (we encounter .min.js files time). being said, can use rename option specify function use whatever custom naming logic need.
so, workaround remove ext , use rename this:
coffee: { dist: { files: [{ expand: true, cwd: 'app/webroot/coffee', src: ['{,*/}*.coffee'], dest: 'app/webroot/js', rename: function(dest, src) { return dest + '/' + src.replace(/\.coffee$/, '.js'); } }] } } update of grunt 0.4.3:
can use extdot option along ext
ext: '.js', extdot: 'last'
Comments
Post a Comment