css - 如果更改了其中一个导入,则更新 main.scss 文件

标签 css sass gulp

我有以下 SASS 结构: app/css/main.scss(编译成main.css) /components/_.scss(导入到main.scss)

目前我正在查看的唯一文件是 ma​​in.scss。一旦我更改了该文件,它就会检查所有导入并使用所有 _component.scss 刷新 css。

我想要完成的是观察 _component.scss 文件的变化,如果对任何_component.scss 文件。目前,如果导入的 _component.scss 文件之一发生更改,我找不到设置观察者 (GULP) 来更新 ma​​in.scss 的方法。

我希望这是有道理的。

最佳答案

使用 Gulp,您可以查看存储 .scss 文件的整个文件夹。

假设每个 .scss 文件都包含在 scss 文件夹中。 在那里,您将拥有 main.scss(将在 main.css 中转换的文件)和所有部分文件(其名称以 _ 开头。例如您的 _component.scss)。

假设您也有一个名为 stylesheets 的目标文件夹,用于存放已编译的 css 文件。

然后你可以使用下面的Gulp脚本来管理watching进程:

var gulp = require('gulp');
var sass = require('gulp-sass');


gulp.task('sass', function() {
  return gulp.src('./scss/**/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./stylesheets'))
});



gulp.task('watch', function() {
    return gulp.watch('scss/**/*.scss', ['sass'])
    .on('change', function(event) {
        console.log('File ' + event.path.slice(event.path.indexOf('/scss/'),event.path.length) + ' was ' + event.type + ', running tasks...');
    });
});

现在使用命令 gulp watch 运行任务 watch。

要了解有关 Gulp-sass 的更多信息,请点击此链接 https://www.npmjs.com/package/gulp-sass

关于css - 如果更改了其中一个导入,则更新 main.scss 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327056/

相关文章:

jquery - 光滑的 slider 更改当前和非当前的背景颜色

css - 构建空的 SASS 文件

javascript - Gulpfile 仅高效编译已更改的 TypeScript 文件

angularjs - Angular module().factory() 不是 concat (gulp) 之后的函数

html - Css 背景图像未出现

javascript - 使用循环检查并从类名字符串中删除一个类名,并将另一个类名添加到触发事件的元素

jquery - 使用jquery获取部分隐藏的div的实际高度

css - 根据其父背景颜色将颜色按钮背景动态更改为较暗

css - 准备现有的 CSS 代码以用于 SCSS/Compass

reactjs - 减少大型、基于 React 的单页应用程序的 Browserify 捆绑文件的大小