Gulp 不编译函数/遵循源代码排序



我的gulpfile.js中有以下内容

var baseDir = 'Base/Assets/scss/**/**';
var modulesDir = 'Modules/**/Assets/scss/*'; 
return gulp.src([baseDir + '*.scss', modulesDir + '*.scss'])
    .pipe(sass({cacheLocation: sassCacheDir, lineNumbers: false}))
    .pipe(concat('app.min.css'));

在baseDir中,我有一个像这样的app.scss文件:

@import "node_modules/foundation-sites/scss/util/util";
@import "settings";
@import "foundation";

util中有一个名为 rem-calc 的函数。我在Modules scss 文件中使用此函数,但这些文件从未执行过。相反,在输出的 css 中,我有以下margin-top: rem-calc(10);实际上应该将其转换为 rem。

我唯一能想到的是 Gulp 不记得 src 的排序。任何帮助将不胜感激。

我已经通过从gulpfile中删除modulesDir来解决这个问题,相反,我正在使用一个名为gulp-sass-glob的新包

这允许我在app.scss文件中指定 glob(在 baseDir 中),如下所示:

@import "node_modules/foundation-sites/scss/util/util";
@import "settings";
@import "foundation";
// now import the modules
@import "../../../../Modules/**/Assets/scss/*.scss";

然后我的gulpfile.js是这样的:

var baseDir = 'Base/Assets/scss/**/**';
gulp.task('site-css', function () {
    return gulp.src(baseDir + '*.scss')
        .pipe(sassGlob())
        .pipe(sass({cacheLocation: sassCacheDir, lineNumbers: false}))
        .pipe(concat('app.min.css'));

希望这对遇到这种情况的其他人有所帮助。

相关内容

  • 没有找到相关文章

最新更新