我使用node.js开发Web应用程序和网站

但是当我想将应用程序部署到某个Pass时,我必须自己手动优化应用程序

喜欢

  • 将Sass编译为样式表
  • 将javascript文件和css文件合并在一起
  • 将它们复制到压缩的YUI中,压缩后再将它们复制回

  • 这个工作流程让我感到不安,所以我的问题是,是否有一些工具或模块可以优化此工作流程,或者自动完成此工作

    您的部署策略是什么?

    最佳答案

    您需要的是构建工具。在Java中,ant和maven是流行的选择。在node.js世界中,有大量的构建工具。我最熟悉的两个是grunt和buildr(完整披露:我是buildr的维护者)。

    这两种工具都可以归结为您编写一个配置文件,该文件指定您的源文件/目录以及您要对它们进行的操作,包括缩小,串联,Saas或Stylus编译等选项。

    https://github.com/gruntjs/grunt

    https://github.com/balupton/buildr.npm

    对于部署工作流,我建议执行以下步骤:

  • 从源代码管理(Git或Subversion或诸如此类)清除您的网站或应用程序代码的 checkout 。
  • 运行grunt或buildr命令来编译所有网站资源。
  • 将结果上传到Web服务器,然后重新启动node.js进程。有很多方法可以做到这一点。

  • 对于应用程序,我建议删除远程系统上的安装目录,并用SCP代替它的新版本。假定存在负载平衡器。

    根据您的应用程序,这可能很简单,可以使用shell脚本编写脚本,也可以使用capistrano或Fleet之类的工具。

    https://github.com/capistrano/capistrano

    https://github.com/substack/fleet

    对于一个简单的网站,我建议您看一下文件差异,例如rsync。我将rsync用于我的个人网站,因为它只是静态内容,我不必担心依赖关系等。

    所以发布可能会像
    $ git clone git://github.com/whatever.git && (cd whatever && buildr && rsync -avz --delete -e ssh <remote server>:webroot)
    

    或对于应用程序,自动化程度更高:
    $ git clone git://github.com/whatever.git && (cd whatever && buildr && make upload)
    

    对于主要应用程序:
    $ buildApp && deployApp
    

    使用buildApp和deployApp作为脚本,其中包含构建和部署所需的所有命令,日志记录,配置等。

    10-06 14:22
    查看更多