2

私はlessの圧縮とcssの縮小に関するgulpタスクに取り組んでいます.3つの異なる環境(ローカル、開発、製品)で3つのfiles.lessを使用してハードコードされた3つの異なる変数が必要なことが唯一の面倒な点です。それを削除した後、毎回適切な環境の適切なバージョンを交換します(元のファイル)。main.less ファイルには、original.less ファイルを含めます。

(英語力と説明力が半端ないです)

gulp.task('before-less', function(cb) {
    if(gutil.env.dev === true) {
        gutil.log('     preprod environment \n');  gulp.src('path/to/dev.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));
    } else if (gutil.env.prod === true) {
        gutil.log('     prod environment \n');
        gulp.src('path/to/prod.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));   
    } else {
        gutil.log('     local environment \n');
        gulp.src('path/to/local.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));
    }
});

gulp.task('less', ['before-less'], function() {
    gutil.log(' LESSing ');

    gulp.src(rute + 'css/*.less')
        .pipe(less({
            paths: [path.join(__dirname, 'less', 'includes')]
        })).on('error', gutil.log)
        .pipe(minifycss()) // Minify
        .pipe(gulp.dest(rute + 'css'))
        // .pipe(notify({message : "Modifications LESS" }))
        .pipe(connect.reload());
});

less のタスクは正しく実行されると思いますが、問題は、gulp less が original.less のファイルをインクルードするとき、最初に var を読み取る必要があるか、最初にそれをインクルードしてから後で var を読み取るかです。

この「問題」についてより良い組織を持っている人のために、私の一気飲みのタスクを含めます

4

2 に答える 2

2

サブタスクを検討するか、さまざまな状況に応じてさまざまなタスクを完了する必要があると思います。

less のタスクは正しく実行されると思いますが、問題は、gulp less が original.less のファイルをインクルードするとき、最初に var を読み取る必要があるか、最初にそれをインクルードしてから後で var を読み取るかです。

Less は遅延読み込みを使用し、変数の最後の宣言が優先されます。http://lesscss.org/features/#variables-feature-lazy-loadingも参照してください。上記は、インクルード後に同じ変数を再度宣言すると、コード内のあらゆる場所で変数がオーバーライドされることを意味します。

于 2015-02-11T23:50:32.667 に答える