是否可以使用forever运行Gulp脚本?
我有一个Gulp脚本,想要将其作为守护进程运行,以便我可以启动/停止/列出它。
好的,我通过将来自 /usr/bin 的 gulp 二进制文件链接到我的本地文件夹并在本地运行命令来解决了它。像这样:
ln -s /usr/bin/gulp ./gulp
forever start gulp serve
命令可能因人而异,但我希望你能理解关键点。
如果您在Node项目中安装了gulp
,则可以按照以下方式操作:
forever start node_modules/gulp/bin/gulp.js [YOUR GULP TASK]
为了给你一个编程式的答案:
你需要使用底层的 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({})
)? - Venugopalpm2
。$ npm install pm2 -g
gulp
。pm2 start gulp serve
pm2 l
查看正在运行的服务,注意有时候您可以在指定端口的旁边看到您的服务正在运行,例如:http://localhost:3001 而不是 http://localhost:3000。forever start -c "gulp" serve
-c
选项允许您使用任何命令。
/usr/local/bin/gulp
,所以命令是ln -s /usr/local/bin/gulp ./gulp
。通过运行whereis gulp
找出 gulp 的位置。 - apple16which gulp
命令来检查我的 gulp 路径 - 在 OSX 上。 - DigitalDesignDj