3

node.js を使用して Web アプリと Web サイトを開発しています

しかし、アプリをいくつかのパスにデプロイしたい場合は、アプリを自分で手動で最適化する必要があります

お気に入り

  • Sass をスタイルシートにコンパイルする

  • JavaScriptファイルを一緒にマージし、cssファイルを一緒にマージします

  • それらをYUI圧縮にコピーし、圧縮後にコピーして戻します

  • 等々

このワークフローは私を混乱させたので、私の質問は、このワークフローを最適化できる、またはこの仕事を自動で実行できるツールまたはモジュールがあるかどうかです。

あなたの展開戦略は何ですか?

4

2 に答える 2

4

必要なのはビルドツールです。Java では、ant と maven が一般的な選択肢です。node.js の世界には、大量のビルド ツールがあります。私が最もよく知っているのは、grunt と buildr の 2 つです (完全な開示: 私は buildr のメンテナーです)。

どちらのツールも、ソースファイル/ディレクトリとそれらに対して何をしたいか、縮小、連結、SaasまたはStylusコンパイルなどのオプションを指定する構成ファイルを作成することに要約されます.

https://github.com/gruntjs/grunt

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

展開ワークフローについては、次の手順をお勧めします。

  1. ソース管理 (Git や Subversion など) からの Web サイトまたはアプリ コードのクリーン チェックアウト。
  2. grunt または buildr コマンドを実行して、すべての Web サイト リソースをコンパイルします。
  3. 結果を Web サーバーにアップロードしてから、node.js プロセスを再起動します。これを行う方法はたくさんあります。

アプリケーションの場合、リモート システムのインストール ディレクトリを削除し、代わりに新しいバージョンを SCP することをお勧めします。これは、ロード バランサーの存在を前提としています。

アプリによっては、シェル スクリプトを使用して自分でスクリプトを作成するだけの簡単な場合もあれば、capistrano やフリートなどのツールを使用する場合もあります。

https://github.com/capistrano/capistrano

https://github.com/substack/fleet

単純な Web サイトの場合、rsync のようなファイルの違いを調べるものをお勧めします。私は個人の Web サイトに 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 は、ビルドとデプロイに必要なすべてのコマンド、ロギング、構成などを含むスクリプトです。

于 2013-03-02T16:45:59.030 に答える