当前位置: 首页 > 知识库问答 >
问题:

Gulp sass只编译已更改的已更改文件的文件夹

韦绍晖
2023-03-14
framework/**/scss/**/*.scss

我们在框架中有多个子模块,scss文件夹有多个可能的路径,例如:

  • fW/submodule/_wwW/css/foo/bar/scss/
  • fW/submodule/subsubmodule/_www/css/foo/bar/fooagain/scss/
  • fw/submodule/views/tpl/library/libraryname/default/css/foo/bar/scss/

等等。

gulp.task('sass', () => {
    return gulp.src([folder+'**/scss/**/*.scss'])
        .pipe(plumber())
        .pipe(sass(sassOptions))
        .pipe(autoprefixer(autoprefixerOptions))
        .pipe(rename((filePath) => {
            filePath.dirname = filePath.dirname.replace("scss", "");
        })).pipe(gulp.dest(folder));
});

我的愿望是:一个scss文件被改变,我们编译他和他的兄弟姐妹。不是每一个scss文件。你觉得有可能吗?

多谢了。

共有1个答案

谢鸿
2023-03-14

您可以在gulpfile中创建函数,为每个“组”的scss文件提供特定任务。类似这样的东西

function compileStylesTask(taskName, srcFiles, distFolder, compiledFileName) {
    gulp.task(taskName, function () {
        var style = gulp.src(srcFiles)
            .pipe(sass().on('error', sass.logError))
            .pipe(rename({basename: compiledFileName}))
            .pipe(gulp.dest(distFolder))
        return merge(style);
    });
}

compileStylesTask('someCustomCssTask', [
    'src/css/some.scss',
    'src/css/some2.scss'
], 'someCompiledName', '/dist/css');

在监视任务中,您现在可以为每个组单独添加监视,如下所示

gulp.task('watch', function () {
    gulp.watch('/src/scss/some.scss', ['someCustomCssTask']);
});

这将只触发此特定的scss任务运行。

 类似资料:
  • 问题内容: 我是Grunt的新手,到目前为止,我非常喜欢它。我希望Grunt在运行时仅编译更改的文件 当前,在我的Grunfile.coffee中(相关部分)。 注意:资产/javascript/app.coffee和资产/javascript/app.js是目录 解决方法可能更短一些,但是我首先将app.coffee编译为app.js,以便在分发工作后,对Coffeescript不满意的人可以以

  • 我已经在kubernetes上配置了fluentd,并配置了两个运行吊舱。我想更改td_agent.conf文件,并添加另一个标记,但是,我无法更改每个pod中的conf文件。我该怎么办?我是否必须更改运行吊舱的yaml文件并重新运行它们?

  • 当被监控目录中的文件的ReadOnly属性更改时,FileSystemMonitor似乎没有触发“更改”事件(没有其他事件)。 这是我的测试代码: 使用该代码,我接收到很多“更改”事件,例如,如果修改时间戳已更改,但如果我更改任何标准属性(如ReadOnly或Hidden),则不会。 我错过了什么,还是我击中了一个“特征”?

  • 问题内容: 我有一个计划用于废料堆的旧可执行文件,但是还不存在。它依赖于已经从我的环境中删除的一些库,但是我在某些可以正常工作的地方有一些存根库。我想将此可执行文件指向这些存根库。是的,我可以设置LD_LIBRARY_PATH,但是许多脚本都调用了此可执行文件,许多用户也希望将其修复在一处。 我没有这个来源,很难得到它。我在想- 是否可以使用支持ELF的编辑器编辑此文件,并向rpath添加一个简单

  • 问题内容: 每当在特定目录中添加/删除/修改新文件时,我都需要在python中知道吗?我正在寻找一个类似“ inofity”的功能(来自POSIX)。 谢谢 问题答案: 注意:我删除了我的答案,因为它无关紧要,并且经常被否决。 我无法删除它。

  • 该插件为 changed.jstree 事件添加了更多信息。新数据包含在changed 事件数据属性中,并包含 selected 和 deselected 节点的列表。 changed.jstree Eventchanged plugin 选择更改时触发 (the "changed" plugin enhances the original event with more data) nodeOb