我通过grunt制作了一个构建过程,它在命令提示符下工作正常。现在我有一个应用程序,我想通过单击构建按钮来运行此任务。
那么有什么方法可以通过编写任何js或php脚本来从浏览器中执行grunt任务吗?
如果需要进一步澄清,请告诉我。 感谢。
答案 0 :(得分:0)
我看到两个选项:
选项一当然要容易得多。如果你只想在没有任何争议或任何事情的情况下运行它,你甚至不需要一个完整的网络堆栈。
Python可以简单如下:
import socket
import subprocess
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM );
s.bind( ( '0.0.0.0', 17777 ) )
s.listen()
while True:
connection, client_address = soc.accept();
connection.send( 'HTTP/1.1 200 OK\r\n\r\n' )
subprocess.call( ['grunt', '..'] )
connection.close()
然后只需点击它,如<a href="host:17777">run</a>
或XHR。
对于更多异国情调的事物,例如状态报告,参数等,您需要更复杂的东西。如果您已经有一个基于PHP的堆栈,您可以简单地执行以下操作:
<?php
echo `grunt ...`;
?>
这当然会等待咕噜声完成。因此,您可以查看PHP pcntl
等等。
如果您使用具有基于网络的控制面板的supervisord
或ramona
之类的内容,另一个想法是向他们发送请求,以便他们可以启动繁琐的流程。
所以上面应该足够用于一个小的用例,而不是那么灵活。对于celery
和其他任务队列更强大,可扩展和认真的查看。例如,您可以使用flask
以及任务队列来获得功能强大的命令和控制中心。用PHP构建一个也不是很难。
答案 1 :(得分:0)
查看grunt-serve插件。它似乎正是你所追求的。