Gulp 为服务器 Livereload 修复 "gulp.run() has been deprecated"
Gulp Fix "gulp.run() has been deprecated" for Server Livereload
我是 Gulp 的新手,我发现了一个 Gulpfile.js 示例,每当我的 app.js
文件或./public
目录。这是 Gulpfile.js 代码:
var gulp = require('gulp'),
spawn = require('child_process').spawn,
node;
/**
* $ gulp server
* description: Launch the server. If there's a server already running, kill it.
*/
gulp.task('server', function() {
if (node) node.kill()
node = spawn('node', ['app.js'], {stdio: 'inherit'})
node.on('close', function (code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
})
/**
* $ gulp default
* description: Start the development environment
*/
gulp.task('default', function() {
gulp.run('server')
gulp.watch(['./app.js', './public/'], function() {
gulp.run('server')
})
})
// clean up if an error goes unhandled.
process.on('exit', function() {
if (node) node.kill()
})
在我的终端 window 我不断收到以下警告:
gulp.run() has been deprecated. Use task dependencies or gulp.watch task triggering instead.
Gulp 正在工作,它正在像我想要的那样重新加载 Web 应用程序,但我想解决这个问题以在未来证明我的开发过程,并摆脱这个烦人的警告消息.
感谢您的帮助!
一种选择是简单地将所有出现的 gulp.run()
替换为 gulp.start()
:
gulp.task('default', function() {
gulp.start('server');
gulp.watch(['./app.js', './public/'], function() {
gulp.start('server');
});
});
然而,使用 gulp.start()
显式调用任务并不是 gulp 中惯用的做事方式(尽管有时这是必要的)。
您收到的警告消息已经暗示了解决此问题的惯用方法:
Use task dependencies or gulp.watch task triggering
- Task dependencies 允许您在另一个任务之前 运行 一个任务。这意味着您可以摆脱第一个
gulp.run()
.
gulp.watch()
中的 - Task triggering 允许您在文件更改时 运行 执行任务。这意味着您可以摆脱第二个
gulp.run()
.
因此您的 default
任务最终看起来像这样:
gulp.task('default', ['server'], function() {
gulp.watch(['./app.js', './public/'], ['server']);
});
我是 Gulp 的新手,我发现了一个 Gulpfile.js 示例,每当我的 app.js
文件或./public
目录。这是 Gulpfile.js 代码:
var gulp = require('gulp'),
spawn = require('child_process').spawn,
node;
/**
* $ gulp server
* description: Launch the server. If there's a server already running, kill it.
*/
gulp.task('server', function() {
if (node) node.kill()
node = spawn('node', ['app.js'], {stdio: 'inherit'})
node.on('close', function (code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
})
/**
* $ gulp default
* description: Start the development environment
*/
gulp.task('default', function() {
gulp.run('server')
gulp.watch(['./app.js', './public/'], function() {
gulp.run('server')
})
})
// clean up if an error goes unhandled.
process.on('exit', function() {
if (node) node.kill()
})
在我的终端 window 我不断收到以下警告:
gulp.run() has been deprecated. Use task dependencies or gulp.watch task triggering instead.
Gulp 正在工作,它正在像我想要的那样重新加载 Web 应用程序,但我想解决这个问题以在未来证明我的开发过程,并摆脱这个烦人的警告消息.
感谢您的帮助!
一种选择是简单地将所有出现的 gulp.run()
替换为 gulp.start()
:
gulp.task('default', function() {
gulp.start('server');
gulp.watch(['./app.js', './public/'], function() {
gulp.start('server');
});
});
然而,使用 gulp.start()
显式调用任务并不是 gulp 中惯用的做事方式(尽管有时这是必要的)。
您收到的警告消息已经暗示了解决此问题的惯用方法:
Use task dependencies or gulp.watch task triggering
- Task dependencies 允许您在另一个任务之前 运行 一个任务。这意味着您可以摆脱第一个
gulp.run()
. - Task triggering 允许您在文件更改时 运行 执行任务。这意味着您可以摆脱第二个
gulp.run()
.
gulp.watch()
中的 因此您的 default
任务最终看起来像这样:
gulp.task('default', ['server'], function() {
gulp.watch(['./app.js', './public/'], ['server']);
});