gpt4 book ai didi

javascript - gulp, compass, live reload & partials reloads

转载 作者:行者123 更新时间:2023-12-03 16:47:19 29 4
gpt4 key购买 nike

所以,我在我的项目中使用了 gulp。

我使用 gulp-compass 来编译我的 Assets 。

而且,我的任务之一是监视开发人员的任务。像这样:

gulp.task('live', function() {
gulp.watch('path/to/my/scss/files', function(event) {
console.log('Event type: ' + event.type);
console.log('Event path: ' + event.path);
compass(event.path);
});
});

compass 功能:

function compass(source) {
return gulp.src(source)
.pipe(
plugins.compass({
config_file: 'config.rb',
css: 'path/to/my/css/files',
sass: 'path/to/my/scss/files'
}).on('error', errorHandler)
)
.pipe(gulp.dest('../web/css'))
.pipe(plugins.livereload());
}

注意:errorHandler 函数与我的问题无关。

我以这种方式查看文件的原因是为了让 gulp-compass 不编译所有文件,而是编译已更改的文件(我将其用于开发,因此我一次将在一个文件中工作),这刷新速度很快,而且我不必等待(通常,编译所有 scss 大约需要 30 ~ 60 秒)。 gulp-compass 只执行编译,不执行监视。

当我处理非部分文件(即:home.scss)时,这非常有效。

但是如果我改变了部分内容,它被包含在主 scss 中,事情就会出错:它将编译我的部分内容,也就是说,它不会刷新(我猜它试图刷新部分内容,不感觉)。

为了实现这一点,我必须对父 scss 文件进行虚拟修改,并且它起作用了。

我知道这是因为我定义任务的方式(一次只发送一个文件给 compass ),也因为 gulp-compass 总是执行“编译”。

这个 gulp-plugin(到目前为止)没有 watch 命令(除非我修补它,但我不想这样做)。

有人知道如何解决这种情况吗?当我更改部分内容时,“他知道”这个部分属于某个父级,然后刷新它?

到目前为止,我可以对父级进行虚拟修改或显式地观察我正在处理的父级 scss,但我希望能够自动执行此操作。

我认为一个解决方案是创建一个包含部分所有父项的映射(直接读取文件),如果部分被修改,更新所有父项并刷新,但这可能“太昂贵”了。也许这可以是某种“热身”......

有人遇到同样的问题吗?您如何使用局部和 watch/live-reload 环境?

所有这一切的目标是编写代码并让我的浏览器更新,这样我就可以实时看到我的进步并防止跨浏览器问题(很少有浏览器同时打开并动态刷新)。

任何建议/帮助将不胜感激!

最佳答案

我无法解决这个问题。

我们放弃了 compass ,因为我们不再需要它。

我们现在使用 node-sass,有时使用 bootstrap,有时使用 post css 等...

关于javascript - gulp, compass, live reload & partials reloads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24693605/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com