私はGulpに非常に新しいです。基本的には、変更されたJavaScriptファイルを監視し、新しい名前で新しいコピーを作成しようとしています。 (最終的には何らかの処理が行われますが、ローマは1日で構築されませんでした)。
私の(素朴な)試みはこれです:
gulp.task('default', function() {
return gulp.watch('../**/**.js', function(obj){
gulp.src(obj.path)
.pipe(gulp.dest('foobar.js'));
});
});
これにより、変更されたファイルが取得され、foobar.jsというフォルダーに正常にコピーされます。 gulp.dest('foobar.js')
を置き換えることができ、srcファイルをコピーして名前を変更するだけの簡単なものはありますか?
編集
所定の場所にコピーするということは、変更されたファイルを取得し、そのコピーを正しい名前で作成することを意味します現在の場所。 (Windowsで)ファイルをクリックし、control-c control-vを押して、結果のファイルの名前を変更するのと同じです。
私はあなたが何を意味するのか100%確信していません
コピーして名前を変更...
ただし、現在のコードに基づいて、単に以下を実行したい場合:
.js
ファイルを監視し、cwd
(現在の作業ディレクトリ)にコピーし、次に、 gulp-rename を使用してそれを実行できます。
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('.'));
});
});
この場合、出力ファイル名はnewFileName.js
です
モジュールを使用するには、gulp-rename
パッケージをnpmでインストールする必要があります(例:npm install gulp-rename
)。
その他の例は、npm @ https://www.npmjs.com/package/gulp-rename#usage のパッケージ詳細ページで入手できます。
そこまでたどり着いたわけではありませんでしたが、最終的にはこれが私が望んでいるように見えます(途中でES6のトランスコンパイルが行われます)。
キーは、src
への呼び出しのベースプロパティを持つオプションオブジェクトのように見えます。これが、dest
への呼び出しで現在のファイルのパスを維持するために必要なもののようです。
var gulp = require('gulp'),
rename = require('gulp-rename'),
babel = require('gulp-babel');
gulp.task('default', function() {
return gulp.watch('../**/$**.js', function(obj){
if (obj.type === 'changed') {
gulp.src(obj.path, { base: './' })
.pipe(babel())
.pipe(rename(function (path) {
path.basename = path.basename.replace('$', '');
}))
.pipe(gulp.dest(''));
}
});
});