Gulp - copy and rename a file

gulp, gulp-watch, javascript

Solution

I'm not 100% certain what you mean by

copy and rename ... in place

But, based on your current code, if you simply wish to:

- Watch all `.js` files in the parent directory and

- Copy them to the `cwd` (current working directory) and

- Name all copies, regardless of source file, the same thing

Then you could use gulp-rename to do just that:

var gulp = require('gulp');
var rename = require('gulp-rename');

gulp.task('default', function() {
  return gulp.watch('../**/**.js', function(obj) {
    gulp.src(obj.path)
      .pipe(rename('newFileName.js'))
      .pipe(gulp.dest('.'));
  });
});

In this case, the output filename is `newFileName.js`

In order to use the module, you'll need to install the `gulp-rename` package with npm (ie: `npm install gulp-rename`).

More examples are available on the package details page on npm @ https://www.npmjs.com/package/gulp-rename#usage

Problem

I'm extremely new to Gulp. I'm basically trying to watch for a modified JavaScript file, and then make a new copy of it with a new name. (eventually there'll be some processing on it, but Rome wasn't built in a day). My (naive) attempt is this: ``` gulp.task('default', function() { return gulp.watch('../**/**.js', function(obj){ gulp.src(obj.path) .pipe(gulp.dest('foobar.js')); }); }); ``` This takes the modified file and successfully copies it into a folder now called foobar.js. Is there anything simple I can replace `gulp.dest('foobar.js')` with that will simply copy and rename the src file in place? EDIT By copy in place, I mean I want to take the modified file, and make a copy of it right where it currently is with a new name. The equivalent of clicking the file (in windows) and hitting control-c control-v, then renaming the resulting file.

Original source