是否有类似于用JavaScript编写的Fabric的部署工具?

是否有类似于用JavaScript编写的Fabric的部署工具?,javascript,node.js,deployment,fabric,Javascript,Node.js,Deployment,Fabric,我构建了一个移动开发堆栈,它几乎完全使用node.js上的Javascript。除了SASS(宁愿少一点)和Fabric。我不想污染我的开发目录,因为我必须组合和缩小JS和CSS,我想我也可以使用node.JS来服务我的代码 我希望减少对Ruby和/或Python的依赖。我并没有真正使用面料的所有功能,所以我有希望更换它。但我找不到任何用Javascript编写的类似工具 我只需要: 从git存储库中提取 在本地安装依赖项 缩小并合并调用require.JS/SASS的JS/CSS 运行tes

我构建了一个移动开发堆栈,它几乎完全使用node.js上的Javascript。除了SASS(宁愿少一点)和Fabric。我不想污染我的开发目录,因为我必须组合和缩小JS和CSS,我想我也可以使用node.JS来服务我的代码

我希望减少对Ruby和/或Python的依赖。我并没有真正使用面料的所有功能,所以我有希望更换它。但我找不到任何用Javascript编写的类似工具

我只需要:

  • 从git存储库中提取
  • 在本地安装依赖项
  • 缩小并合并调用require.JS/SASS的JS/CSS
  • 运行testsuite
  • 通过node.js提供代码,用于实际操作或Ripple测试

Fabric可能已经有些过分了,我只在Python web项目中使用它,因为我的机器上没有运行必要的服务器,但这里的情况并非如此。如果没有布料,最好的处理方法是什么?

我自己也在思考同样的问题

到目前为止,我找到的最有希望的直接候选人是launch()。然而,它已经有一年没有更新了,这让我对它的未来状态有点怀疑

在缺乏明显良好的解决方案的情况下,我最终以以下方式逐一解决了整个构建/部署问题:

  • 经过一些尝试和错误,我从
    .gitignore
    中删除了
    node\u模块。其中一个含义是,您不必在本地安装依赖项,从而删除了第二步(也让您信服)。
    
    • 编辑:我不再这样做,而是将
      node\u模块
      保留在
      .gitignore
      中。只需确保
      package.json
      保持最新(有关提示,请参阅)
  • 我最终自动化了JS/CSS处理、linting和运行的测试套件。强烈推荐
  • 我很懒,刚才我正在将缩小的东西添加到git中(希望我能在某个时候改变这一点)。
    • Edit:我不再向git中添加缩小的内容,而是在部署时运行
      grunt
通过这样做,我有效地消除了对结构的一些需求,只剩下实际部署需要解决:

  • 最好的解决方案(部署方面)是避免运行自己的服务器,并使用现成的云解决方案,如或
  • 或者,您可以托管自己的node.js部署工具。例如,您可以在自己的服务器上安装并使用提供的API和工具
  • 在Linux机器上,编写一行程序来重新部署node.js应用程序非常容易,因此我觉得不需要使用任何额外的工具(除了bash)来实现这一点
  • 尽管如此,我也很高兴听到更好的解决办法

    编辑:刚刚了解部署()。看起来很有希望。你也可以试试

    执行登台和部署,支持依赖项安装和upstart脚本


    关于使用stagecoach部署node&mongo。

    看起来非常有趣,灵感来自Fabric。它的文档有大量的例子,值得一看

    另一个javascript部署工具是

    从他们的自述:

    Shipit是一个自动化引擎和一个为node/iojs编写的部署工具

    Shipit是为那些不了解ruby或者遇到过ruby问题的人打造的Capistrano替代品。如果您想用JavaScript编写任务并享受节点生态系统,Shipit也适合您


    谢谢,看起来真的很有趣。刚刚发现这似乎很好,但grunt似乎更容易理解和使用。哦,对了!杰克看起来也不错。看起来更像是咖啡脚本。没有咖啡,语法看起来很冗长,但我可以试着了解一下我的选项。CoffeeScript实际上与Cake捆绑在一起,Cake是Make/Rake/Jake for CoffeeScript。但不确定它是否具有相同的功能。仍然非常冗长。@PeterThrowson添加了新工具:deploy(参见答案)。看来这也会有帮助的!请查看Joyent的这篇博文,以回应Mikeal Rogers将节点_模块放入git存储库的解决方案。我和戴夫在一起。源代码用git编写。编译/派生/传输的工件不会。我是fabric的长期用户,我刚刚在一个项目中试用过。它工作得很好。使用flightplan已经有一段时间了…它使用起来非常简单。没有capistrano功能齐全,但更易于实现。以下是我的永久或upstart样板配置: