2017-12-08 7 views
0

私は2つのレポジトリを持っています:NodeJSから別のreposビルドファイルを提供するには?

  • Vueクライアントインターフェイス。
  • NodeJSソケットとWebサーバー。

私は、サーバーとVueのインターフェースの構築されたファイルを提供する必要があり、続行する方法がわからない...

私はこれを解決する方法の2つのアイデアを持っています

  1. Vueリポジトリを複製するスクリプトを作成し、構築し、 ビルドされたファイルをサーバーによってフォルダサーバーに移動します。

  2. サーバーの依存関係としてVueリポジトリを宣言して、 依存ファイルを構築してアクセスする方法を見つけます。

第2のものはきれいだと思われますが、私はこれにどのように接近するのか分かりません。誰かがより良いアプローチと私がどのように始めるかもしれないかについてのいくつかの考えを提供してもらえますか?ここで

答えて

1

あなたはgitタグを付けましたので、アプローチ2を使用しますがgitサブモジュールを使用します。 Vuejsリポジトリ内でVuejsプロジェクトを構築するためのWebpackタスクを作成できます。次に、vuejsリポジトリをWebサーバー/ソケットプロジェクトにサブモジュール化することができます。

gulpまたはwebpackスクリプトを使用して、vuejsプロジェクトを呼び出してビルドを指示することができます。それが構築されたら、express.static関数を使用して、あなたが望むどんなルート(おそらくちょうど/ルート)であなたのWebサーバーからビルドを提供することができます。

サブモジュールを使用すると、フロントエンドの新しいリリースを行う準備ができたらサブモジュールをバンプするだけで、新しいバージョンの依存関係でWebサーバーを再デプロイすることができます。これは、Ghost projectがフロントエンド展開を行う方法です。

Gitサブモジュールdocumentation - https://git-scm.com/book/en/v2/Git-Tools-Submodules

+1

に一致するようにパスを変更する方法を知りたい人:https://delicious-insights.com/en/posts/mastering-git-submodules/ – Miaow

0

は、私はExpressでそれを行う方法は次のとおりです。

const express = require("express"), 
     path = require("path"), 
     app = express() 

const DIST_DIR = path.normalize(__dirname + "/../../VueOutputDir") 

app.use(express.static(DIST_DIR)) 

これは自動的にVueOutputDirディレクトリからindex.htmlや資産を提供します。

+0

私はVueリポジトリをサーバのものに "リンク"する方法を探しています... あなたの命題では、ビルドするために両方のリポジトリをクローンする必要がありますVue出力ディレクトリ – Miaow

関連する問題