Browser-syn c не перезагружается в gulp - PullRequest
0 голосов
/ 26 апреля 2020

Я запускаю gulp serve в терминале, и появляется окно. Но когда я делаю изменения в. html, эти изменения не перезагружаются на страницу. Я понятия не имею, что такое завершение asyn c, потому что я впервые получаю эту ошибку.

[BS] Local URL: http://localhost:3000
[BS] External URL: http://10.0.0.58:3000
[BS] Serving files from: temp
[BS] Serving files from: dev
[BS] Serving files from: dev/html
^C[15:49:48] The following tasks did not complete: serve
[15:49:48] Did you forget to signal async completion?
let serve = () => {
    browserSync({
        notify: true,
        reloadDelay: 0, // A delay is sometimes helpful when reloading at the
        server: {       // end of a series of tasks.
            baseDir: [
                `temp`,
                `dev`,
                `dev/html`
            ]
        }
    });
    watch(`dev/html/**/*.html`, series(validateHTML)).on(`change`, reload);
    watch(`dev/js/*.js`, series(lintJS, compressJS)).on(`change`, reload);
    watch (`dev/css/**/*.css`, series(compressCSS)) .on(`change`, reload);
};

1 Ответ

0 голосов
/ 27 апреля 2020

Gulp 4 требует выполнения каждой задачи, чтобы она могла продолжать выполнение других задач в указанном порядке (например, параллельно или последовательно).

Вы получаете эту фатальную ошибку, потому что ваша задача serve отсутствует обратный вызов done, который позволяет gulp знать, что вы готовы запустить следующую задачу в очереди.

Более подробная информация здесь: Что делает метод «выполнено» Gulp?

Ниже приведена обновленная версия вашей задачи serve, которая позволит ей продолжать работу одновременно. без причины фатальная ошибка.

let serve = (done) => { // add done as an argument
    browserSync({
        notify: true,
        reloadDelay: 0, // A delay is sometimes helpful when reloading at the
        server: {       // end of a series of tasks.
            baseDir: [
                'temp',
                'dev',
                'dev/html'
            ]
        }
    });
    watch('dev/html/**/*.html', series(validateHTML)).on('change', reload);
    watch('dev/js/*.js', series(lintJS, compressJS)).on('change', reload);
    watch ('dev/css/**/*.css', series(compressCSS)) .on('change', reload);
    done();  // call the done method when you are ready to move onto the next task.
};
...