Ionică Bizău
Ionică Bizău

Reputation: 113365

Babelify the files in place, in multiple directories

How can I use babel to transpile the JavaScript files containing ES6 stuff, in different directories? I want the result to be in the same directories (e.g. having foo/bar/index.js, I want to get the ES5 code in the same file, by overriding it).

To override one directory I use:

 babel lib/ -d lib

This works for one folder (overrides all the content in the lib directory).

How can I do the same for two or more directories? For example, how can I do that for lib/ and bin/?

Upvotes: 2

Views: 2598

Answers (2)

protoEvangelion
protoEvangelion

Reputation: 4699

The codemod CLI is perfect for this.

It will just modify your files in place:

codemod --plugin babel-transformer.js src/**/*.js

Upvotes: 2

sdgluck
sdgluck

Reputation: 27237

AFAIK the babel CLI isn't complex enough to support this use-case in a single command. However you could concatenate two commands to achieve the same result:

babel lib/ -d lib && babel bin/ -d bin

Or you could write a script that does this for you, using gulp or another build tool of your choice. For example (untested):

gulp.task('default', () =>
  gulp.src(['bin/**/*.js', 'lib/**/*.js'], { base: './' })
    .pipe(babel())
    .pipe(gulp.dest('.'))
)

Upvotes: 3

Related Questions