46812


babel/の中のJSファイルを実行すると、下記のようにトランスパイルされているようなのですが  
./babel-destの中身が空のままです。

・./babel-destのカレントディレクトリは、gulpfile.jsのあるフォルダと考えてよいでしょうか？  
このファイルがjsフォルダの中にbabel-destフォルダと一緒に入っているのでこの指定で正しいはずですよね。

・出力先のフォルダ指定が間違っているならエラーが出るのではないのでしょうか？  
うまくいかなくてもエラーが出ないなら切り分けができません。

・実行結果

[code]

    js>gulp babelwatch
    (node:6432) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
    [20:14:15] Using gulpfile js\gulpfile.js
    [20:14:15] Starting 'babelwatch'...
    [20:14:15] Finished 'babelwatch' after 41 ms
    [20:15:15] Starting 'babeltrance'...
    [20:15:15] Finished 'babeltrance' after 50 ms
    [20:17:18] Starting 'babeltrance'...
    [20:17:18] Finished 'babeltrance' after 38 ms
    [20:44:01] Starting 'babeltrance'...
    [20:44:01] Finished 'babeltrance' after 91 ms
    [20:45:22] Starting 'babeltrance'...
    [20:45:23] Finished 'babeltrance' after 30 ms
    
[/code]

・ソースコード抜粋

[code]

    var gulp = require('gulp');              
    var postcssimport = require('postcss-import');
    var postcss = require('gulp-postcss');  
    var cssnext = require('postcss-cssnext'); 
    var csswring = require('csswring');
    var babel = require("gulp-babel");
    var browserSync = require('browser-sync').create();
    var csscomb = require('gulp-csscomb'); 
    var plumber = require('gulp-plumber');
    
    
    
    gulp.task('babeltrance', function() {
      gulp.src('babel/*')
        .pipe(plumber())
        .pipe(babel({
          presets: ['es2015'],
        }))
        .pipe(gulp.dest('./babel-dest'));
    });
    
    gulp.task('babelwatch', function() {
      gulp.watch('babel/*', ['babeltrance']); 
    });
    
    gulp.task('babel', ['babeltrance', 'babelwatch']);
    ~
    
[/code]


CC BY-SA 4.0
2018-07-21T14:33:24.620
46811
2018-07-22T06:44:04.697
2018-07-21T14:50:13.183
19110
24247
question
gulp
gulpがうまくいかない: babel-dest が空のままになる


> ./babel-destのカレントディレクトリは、gulpfile.jsのあるフォルダと考えてよいでしょうか？

[gulp.dest](https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpdestpath-
options)のAPI上は、`options.cwd`のデフォルト値が`process.cwd()`となっているので、カレントディレクトリは、`gulpfile.js`のあるフォルダではなく、`gulp`を実行したフォルダになるようです。

> 出力先のフォルダ指定が間違っているならエラーが出るのではないのでしょうか？

[gulp.dest](https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpdestpath-
options)は`Folders that don't exist will be
created.`とあるので、フォルダ指定が間違っていてフォルダが存在しない場合にも自動で作成するようです。

切り分けのためには、[gulp-debug](https://github.com/sindresorhus/gulp-debug#gulp-
debug-)というものがあるようです。  
パイプラインの途中にはさめば、ストリームの状態をターミナルに出力してくれるようです。

* * *

補足です。

`gulp -h`によると、以下のように別ディレクトリの`gulpfile`を指定して実行する場合は、

[code]

    gulp --gulpfile ./js/gulpfile.js babelwatch
    
[/code]

自動的に、gulpfileが格納されているディレクトリにCWDを移動するようです。  
そのため、`gulp.src`や`gulp.dest`内のパスは、`gulpfile`格納ディレクトリからの相対パスで書くと良いみたいです。

以下は、ヘルプの抜粋です。

[code]

    --gulpfile, -f          Manually set path of gulpfile. Useful if you have
                              multiple gulpfiles. This will set the CWD to the
                              gulpfile directory as well.                   [文字列]
    
[/code]


CC BY-SA 4.0
2018-07-21T14:57:00.770
46812
2018-07-22T06:44:04.697
2018-07-22T06:44:04.697
46811
answer