Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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 狼吞虎咽';打开';任务不存在';不能正确执行_Javascript_Node.js_Gulp - Fatal编程技术网

Javascript 狼吞虎咽';打开';任务不存在';不能正确执行

Javascript 狼吞虎咽';打开';任务不存在';不能正确执行,javascript,node.js,gulp,Javascript,Node.js,Gulp,下面是我的gulpfile中的代码片段,我遇到的主要问题是,每当从CLI执行“gulp”时,open并不总是打开新的浏览器窗口。例如,如果我删除生成的'dist'文件夹并执行'gulp',则'dist'将与.html文件和资产结构分离,但它将无法在我的浏览器窗口中打开站点 如果我随后取消当前正在运行的gulp任务并再次从CLI执行它(在“dist”文件夹就位的情况下),则gulp将在新的浏览器窗口中加载站点 如何设置open,使其无论发生什么情况都能每次执行?我认为这与“清洁”任务有冲突,但我不

下面是我的gulpfile中的代码片段,我遇到的主要问题是,每当从CLI执行“gulp”时,open并不总是打开新的浏览器窗口。例如,如果我删除生成的'dist'文件夹并执行'gulp',则'dist'将与.html文件和资产结构分离,但它将无法在我的浏览器窗口中打开站点

如果我随后取消当前正在运行的gulp任务并再次从CLI执行它(在“dist”文件夹就位的情况下),则gulp将在新的浏览器窗口中加载站点

如何设置open,使其无论发生什么情况都能每次执行?我认为这与“清洁”任务有冲突,但我不太确定

任何帮助都将不胜感激

清理任务:

gulp.task('clean', function() {
    gulp.src(['./dist/**/*.*'], { read: true })
        .pipe(clean())
});
gulp.task('open', function() {
    gulp.src(config.startpage)
        .pipe(open(config.startpage, { url: 'http://localhost:'+config.http_port }));
});
gulp.task('default', ['html', 'scripts', 'styles', 'images', 'open', 'clean'], function() {
    server.listen(config.livereload_port);
    http.createServer(ecstatic({ root: 'dist/' } )).listen(config.http_port);
        // gutil.log(gutil.colors.yellow('HTTP Server running on port:'), gutil.colors.red(config.http_port));
    gulp.watch(config.src_sass, ['styles'])._watcher.on('all', livereload);
    gulp.watch(config.src_js, ['scripts'])._watcher.on('all', livereload);
    gulp.watch(config.src_html, ['html'])._watcher.on('all', livereload);
});
打开任务:

gulp.task('clean', function() {
    gulp.src(['./dist/**/*.*'], { read: true })
        .pipe(clean())
});
gulp.task('open', function() {
    gulp.src(config.startpage)
        .pipe(open(config.startpage, { url: 'http://localhost:'+config.http_port }));
});
gulp.task('default', ['html', 'scripts', 'styles', 'images', 'open', 'clean'], function() {
    server.listen(config.livereload_port);
    http.createServer(ecstatic({ root: 'dist/' } )).listen(config.http_port);
        // gutil.log(gutil.colors.yellow('HTTP Server running on port:'), gutil.colors.red(config.http_port));
    gulp.watch(config.src_sass, ['styles'])._watcher.on('all', livereload);
    gulp.watch(config.src_js, ['scripts'])._watcher.on('all', livereload);
    gulp.watch(config.src_html, ['html'])._watcher.on('all', livereload);
});
默认任务:

gulp.task('clean', function() {
    gulp.src(['./dist/**/*.*'], { read: true })
        .pipe(clean())
});
gulp.task('open', function() {
    gulp.src(config.startpage)
        .pipe(open(config.startpage, { url: 'http://localhost:'+config.http_port }));
});
gulp.task('default', ['html', 'scripts', 'styles', 'images', 'open', 'clean'], function() {
    server.listen(config.livereload_port);
    http.createServer(ecstatic({ root: 'dist/' } )).listen(config.http_port);
        // gutil.log(gutil.colors.yellow('HTTP Server running on port:'), gutil.colors.red(config.http_port));
    gulp.watch(config.src_sass, ['styles'])._watcher.on('all', livereload);
    gulp.watch(config.src_js, ['scripts'])._watcher.on('all', livereload);
    gulp.watch(config.src_html, ['html'])._watcher.on('all', livereload);
});

*Config.start\u页面指向dist/index.html

您有两个相关问题:

  • 您需要返回任务中的流,否则gulp将不知道它们已完成。如果没有,gulp将假定任务是同步的

    这很重要,因为它完全打破了任务依赖关系。gulp调用一个任务,发现它是同步的,然后立即开始下一个任务

    只需将任务更改为如下所示:

    gulp.task('clean', function() {
        return gulp.src(['./dist/**/*.*'], { read: true })
            .pipe(clean())
    });
    

  • gulp当前无法按指定顺序运行非依赖任务。在您的
    默认任务中,这些依赖项将同时运行,除非它们相互依赖

    由于我怀疑您是否希望在每次运行其他任务时强制执行
    clean
    任务,因此另一种解决方案是使用。(这是我的图书馆,是为了解决这个问题而写的。)最终,希望他们能找到一种方法来解决这个问题

    注意:您仍然需要修复问题1,才能使
    运行序列
    正常工作


  • 使用您的插件,我可以将我的运行顺序更改为:runSequence('clean',['scripts','styles','images','html'],'open',callback);-谢谢,它工作得非常好!