所以,我在我的项目中使用了gulp。
我用罗盘来整理我的资产。
而且,我的任务之一是对dev的监视任务。就像这样:
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);
});
});指南针功能:
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不是编译所有的文件,而是那些已被修改的文件(我将使用这个对dev,所以我将在一个文件中的时间),这样刷新是快速的,我不需要等待(通常,在编译所有scss时大约30 ~60秒)。狼吞虎咽的罗盘只执行编译,而不是观看。
当我正在处理一个非部分文件(即: home.scss)时,这是非常完美的。
但是,如果我更改了一个部分上的某个内容,并且包含在主scss中,事情就会出错:它会编译我的部分,也就是说,它不会刷新(我猜它试图刷新一个部分,没有意义)。
为了实现这一点,我必须对父scss文件做一个虚拟的修改,并且它可以工作。
我知道这是由于我已经定义了我的taks (只发送到罗盘一个文件在当时),也由于吞咽罗盘执行始终“编译”。
这个(到目前为止)没有watch命令(除非我修补它,而且我不想这样做)。
有人知道如何解决这种情况吗?当我在某个部分中更改某个内容时,“他知道”这个部分属于某个父级,然后刷新它?
到目前为止,我可以在父母上做虚拟修改,或者显式地观察我正在做的父scss,但是我希望有这个自动的。
我认为一个解决方案可以是与该部分的所有父级创建一个映射(直接读取文件),如果一个部分是修改的,更新所有的父母并刷新,但这可能“太昂贵”。也许这是某种“热身”.
有人也有同样的问题吗?如何处理部分数据和监视/实时重新加载环境?
所有这些的目标都是编写代码并进行浏览器更新,这样我就可以实时看到我的进步,并防止跨浏览器问题(很少有浏览器同时打开并动态刷新)。
任何建议/帮助都将不胜感激!
发布于 2016-05-18 12:28:27
我解决不了这个问题。
我们放下了指南针,因为它不再满足我们的需要。
我们现在使用的是节点-sass,有时使用引导,有时使用后css,等等.
https://stackoverflow.com/questions/24693605
复制相似问题