1

私は今日、少ないファイルなどをコンパイルするために gulp.js を調べ始めました。

タスクで起動して実行しましたが、コンパイルされたファイルはすべて同じフォルダーに配置され、ソース階層は維持されません。

出力が元のファイル構造を維持していることを確認する方法はありますか?

私はgulpが初めてなので、これを正しく行っていない可能性があります。

これが私のgulpファイルです(Lessに関連する部分):

var sourceLess = 'app/assets/stylesheets/less';
var targetCss = 'public/css2';

// Compile Our Less
gulp.task('less', function() {
return gulp.src([sourceLess + '/my-bootstrap-theme.less', sourceLess + '/themes/*.less'])
    .pipe(less())
    .pipe(minifyCss())
    .pipe(gulp.dest(targetCss));
});

ソース テーマ フォルダの Less ファイルを宛先テーマ フォルダに置きたいと思います。不足しているオプションは何ですか?

これらを個別のタスクとして実行する必要がありますか?

ありがとう

更新: 提案された投稿を見て、パスを次のように変更しました。

gulp.src([sourceLess + '/**/my-bootstrap-theme.less', sourceLess + '/themes/**/*.less', sourceLess + '/responsive.less'], {
    base: 'sourceLess'
})

また、ディレクトリ変数を次のように変更しました。

var sourceLess = './app/assets/stylesheets/less';
var targetCss = './public/css2';

themesしかし、それは私が期待しているフォルダを生成しません。

4

2 に答える 2

3

サブフォルダーを保持したい場合は、オプション (2 番目の引数) でベースを定義する必要があります。たとえば、「dist/」に「assets/file.doc」を保持するには:

gulp.src(["assets/file.doc"], {base: "."})
    .pipe(gulp.dest("dist/"));

リンクで確認してくださいhttps://github.com/gulpjs/gulp/issues/151

乾杯、ちだん

于 2014-12-24T22:50:34.133 に答える
0

2 つのストリームを使用する必要があります

var sourceLess  = 'app/assets/stylesheets/less';
var targetCss   = 'public/css2';

gulp.task('less', function() {

    // my-bootstrap-theme.less
    gulp.src(sourceLess + '/my-bootstrap-theme.less')
        .pipe(less())
        .pipe(minifyCss())
        .pipe(gulp.dest(targetCss));

    // themes/*.less
    gulp.src(sourceLess + '/themes/*.less')
        .pipe(less())
        .pipe(minifyCss())
        .pipe(gulp.dest(targetCss + '/themes'));

});
于 2014-02-23T16:15:22.033 に答える