Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用@import吞咽监视并编译更少的文件_Javascript_Gulp_Livereload_Gulp Less - Fatal编程技术网

Javascript 用@import吞咽监视并编译更少的文件

Javascript 用@import吞咽监视并编译更少的文件,javascript,gulp,livereload,gulp-less,Javascript,Gulp,Livereload,Gulp Less,我正试着让我的脑袋在咕噜咕噜地看着并编译一个.less项目+livereload。 我有一个使用@import的style.less文件。 当我运行gulp任务时,它似乎不理解导入。修改主less文件时,gulp会编译该文件并刷新浏览器,但如果仅修改导入,则会忽略更改 这是我的gulpfile.js var gulp = require('gulp'); var less = require('gulp-less'); var watch = require('gulp-watch'); var

我正试着让我的脑袋在咕噜咕噜地看着并编译一个.less项目+livereload。 我有一个使用
@import
的style.less文件。 当我运行gulp任务时,它似乎不理解导入。修改主less文件时,gulp会编译该文件并刷新浏览器,但如果仅修改导入,则会忽略更改

这是我的gulpfile.js

var gulp = require('gulp');
var less = require('gulp-less');
var watch = require('gulp-watch');
var prefix = require('gulp-autoprefixer');
var plumber = require('gulp-plumber');
var livereload = require('gulp-livereload');
var path = require('path');

gulp.task('default', function() {
    return gulp.src('./style.less')
        .pipe(watch())
        .pipe(plumber())
        .pipe(less({
          paths: ['./', './overrides/']
        }))
        .pipe(prefix("last 8 version", "> 1%", "ie 8", "ie 7"), {cascade:true})
        .pipe(gulp.dest('./'))
        .pipe(livereload());
});
我尝试在
gulp.src('./*.less')
中不指定主文件名,但是所有less文件都是单独编译的


谢谢

现在,您正在打开单个
gulp.src
文件,并在使用gulp打开文件后观看。 下面将监视和src分为两个任务,允许单独的文件监视和src监视

var gulp = require('gulp');
var less = require('gulp-less');
var watch = require('gulp-watch');
var prefix = require('gulp-autoprefixer');
var plumber = require('gulp-plumber');
var livereload = require('gulp-livereload');
var path = require('path');

gulp.task('less', function() {
    return gulp.src('./style.less')  // only compile the entry file
        .pipe(plumber())
        .pipe(less({
          paths: ['./', './overrides/']
        }))
        .pipe(prefix("last 8 version", "> 1%", "ie 8", "ie 7"), {cascade:true})
        .pipe(gulp.dest('./'))
        .pipe(livereload());
});
gulp.task('watch', function() {
    gulp.watch('./*.less', ['less']);  // Watch all the .less files, then run the less task
});

gulp.task('default', ['watch']); // Default will run the 'entry' watch task
当使用
*.less
找到的任何文件被更改时,它将运行任务,该任务将只编译src文件。
如果不检查导入设置,@imports应该被正确地“包括”进去。

您可以使用它。

重复:尽管它使用了较旧的gulp.run()风格!谢谢你的任务分解:)我回来了。我正在处理的文件都在同一个文件夹中。我现在正在处理
/overrides/
文件夹中的文件。当我更改此文件夹中的文件时,gulp不再检测这些更改。它在根级别工作,但不适用于嵌套导入。这不是
路径:['./','./overrides/']
假定的帮助吗?是否可以将特定的监视文件路径传递到“less”任务中,并根据传入路径选择“style.less”文件?此包已失效!