使用forever运行Gulp脚本?

15

是否可以使用forever运行Gulp脚本?

我有一个Gulp脚本,想要将其作为守护进程运行,以便我可以启动/停止/列出它。

5个回答

22

好的,我通过将来自 /usr/bin 的 gulp 二进制文件链接到我的本地文件夹并在本地运行命令来解决了它。像这样:

ln -s /usr/bin/gulp ./gulp
forever start gulp serve

命令可能因人而异,但我希望你能理解关键点。


1
对我来说,gulp 的位置是 /usr/local/bin/gulp,所以命令是 ln -s /usr/local/bin/gulp ./gulp。通过运行 whereis gulp 找出 gulp 的位置。 - apple16
2
同样的问题 @apple16,但我只能使用 which gulp 命令来检查我的 gulp 路径 - 在 OSX 上。 - DigitalDesignDj

9

如果您在Node项目中安装了gulp,则可以按照以下方式操作:

forever start node_modules/gulp/bin/gulp.js [YOUR GULP TASK]

注意:请勿修改HTML标签。

4

为了给你一个编程式的答案:

你需要使用底层的 forever-monitor,它包含了 forever 命令行工具所使用的核心功能。

var forever = require('forever-monitor');

gulp.task('server', function () {
    new forever.Monitor('path/to/server-script.js').start();
});

您可以运行多个此类任务,无需使用特殊的守护程序选项,因为 gulp 任务在幕后使用 orchestrator 并发运行任务。

如果在控制台中使用 CMD+C 停止您的任务不合适,请将其放入变量中:

var child = new forever.Monitor('path/to/server-script.js');
child.on('event', cb) / child.start() / child.stop()

server-script.js 的内容是什么?它是 Node HTTP 服务器 (http.createServer(function (request, response) {});) 还是 Gulp 服务器 (connect.server({}))? - Venugopal
@Venugopal 这是一个普通的节点服务器。 - Dominic

1
安装 pm2
$ npm install pm2 -g

现在开始 gulp
pm2 start gulp serve

您可以使用pm2 l查看正在运行的服务,注意有时候您可以在指定端口的旁边看到您的服务正在运行,例如:http://localhost:3001 而不是 http://localhost:3000

"pm2 start gulp serve" 对我不起作用... 错误:无法找到模块 '/home/ravisankar/workspace/Javascript/appolo/gulp' 即使我安装了gulp模块。 - Ravi Shanker Reddy

0
尝试这个: forever start -c "gulp" serve -c选项允许您使用任何命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接