1. ホーム
  2. node.js

[解決済み] Node.js + express Webアプリケーションのパッケージングとデプロイの方法は?

2023-05-30 14:26:14

質問

私は Node.js プログラミングの初心者で、最近、express、backbone およびその他の補完的なビュー技術、mongoDB を使用してサンプル動作ウェブ アプリケーションを作成しました。今、私はステージング環境に同じものをデプロイしたいポイントにおり、私はこのアプリケーションをパッケージ化して同じものを配布する方法がわからないです。[私は mongoDb とそれを個別にセットアップすることができます]。

私はJavaの世界から来ました。そこでは、サーブレットコンテナにデプロイされるWebアプリケーションのために、再利用可能なライブラリやwar/earパッケージのためのjarを作成します。この場合、node.js自体がウェブコンテナとして機能するので、どのように私のウェブアプリケーションをパッケージ化すればよいのでしょうか?

  1. express を使ってビルドした node ウェブアプリケーションをパッケージングするための標準的なフォーマット/ガイドラインはありますか。(node アプリケーションのための同様の jar/war パッケージング システムはありますか?)
  2. パッケージングした後、どのようにデプロイしますか?それはまた、それ自身のコンテナーであるので、exe になりますか?

PS: 今のところ、私はただ手動で必要なすべてのソースファイルをステージング環境にコピーし、そのマシン上ですべての依存関係をダウンロードするためにnpmコマンドを実行し、それから私のserver.jsを実行するために「永遠」または他のメカニズムを使用しようと考えています。(また、アプリがクラッシュしてforeverが失敗した場合に備えて、何らかの監視を追加します。) これが正しい方法かどうかは分かりませんが?私はこの問題に対処するための何らかの標準的な方法があるはずだと確信しています。

どのように解決するのですか?

標準的な方法はありませんが、正しい方向に進んでいます。もし、あなたの package.json が最新でよく保存されているのであれば、アプリのディレクトリを本番システムにコピー/zip/クローンするだけでよく、その際に node_modules .

本番システムで npm install を実行して、依存関係をインストールします。 npm test でテスト、そして最後に NODE_ENV=production node server.js

私がかなり役立つと考えた最近のスライドで、foreverのようなラッパーのトピックも含まれているものがあります。 はこちら .