如何通过浏览器点击按钮来运行Grunt Build任务?

时间:2013-12-03 05:09:50

标签: javascript build gruntjs

我通过grunt制作了一个构建过程,它在命令提示符下工作正常。现在我有一个应用程序,我想通过单击构建按钮来运行此任务。

那么有什么方法可以通过编写任何js或php脚本来从浏览器中执行grunt任务吗?

如果需要进一步澄清,请告诉我。 感谢。

2 个答案:

答案 0 :(得分:0)

我看到两个选项:

  1. 服务器端脚本 - 如PHP,Python等,可以启动您的任务。
  2. 使用本机库(Start an external application from a Google Chrome Extension?)。
  3. 的浏览器插件

    选项一当然要容易得多。如果你只想在没有任何争议或任何事情的情况下运行它,你甚至不需要一个完整的网络堆栈。

    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等等。

    如果您使用具有基于网络的控制面板的supervisordramona之类的内容,另一个想法是向他们发送请求,以便他们可以启动繁琐的流程。

    所以上面应该足够用于一个小的用例,而不是那么灵活。对于celery和其他任务队列更强大,可扩展和认真的查看。例如,您可以使用flask以及任务队列来获得功能强大的命令和控制中心。用PHP构建一个也不是很难。

    祝你好运。

答案 1 :(得分:0)

查看grunt-serve插件。它似乎正是你所追求的。