2016-11-20 10 views
0

私のgulpファイルをプロジェクト用に設定しようとしていますが、lessをコンパイルしてから小さくして、 。Gulp、cssがdist/css/lessに保存されています。dist/cssにする必要があります

私の少ないファイルはapp/less/styles.lessに保存されます。コンパイルされたCSSファイルはdist/css/styles.cssに保存されますが、dist/css/less/styles.cssに保存されます。

私はここで間違っていますか?

var app = 'app/', 
dist = 'dist/', 
appStyles = app + '**/*.less'; 

gulp.task('compilecssremote', function(){ 
    return gulp.src(appStyles) 
    .pipe(plumber({ 
    errorHandler: onError 
    })) 
    .pipe(changed(dist)) //must be dist 
    .pipe(urladjuster({ 
    prepend: '/' + project + '/dist/' //based on location of CSS files 
    })) 
    .pipe(less()) 
    .pipe(minifycss({keepBreaks: false})) 
    .pipe(gulp.dest(dist + 'css')) 
}); 

答えて

0

あなたはapp/less/styles.lessのようなパスでソースファイルを一致させるために(あなたのappStyles別名)'app/**/*.lessのようなgulp.srcを使用する場合、これは正常な動作です。ここで理解するには、2つの部分があります:デフォルトのすべてによって

  1. あなたgulp.srcパスの最初のグロブは、出力パスから省略される前に。この場合は、**の前のすべてです。つまり、app/です。だからあなたの出力CSSファイル'dest/app/…に行くではありません。 (これについての詳細は、this answerを参照してください)

  2. 最初のglobと一致するパスは、出力パスに保存されます。この場合、一致するファイル'app/less/styles.less'less/です(つまり、'app/**/*.less'の部分は**で表されます)。 (それはあなたの問題の場合、ポイントの横ですが、この機能は相対的なファイル構造を維持するために非常に便利です。)

#1 &#2を使用して、1つのクイックフィックスは、出力からless/をトリミングするだろうパスをgulp.srcの最初のグロブの前に置きます。たとえば、appStyles = app + 'less/**/*.less'を変更します。

関連する問題