2017-06-28 20 views
0

私はwebpack-encoreを使用することを学んでおり、それがdev依存としてのみインストールされていることに気付きました。それは私のjscssのファイルを開発時にコンパイルしてリポジトリにプッシュし、次にプロダクションにプッシュする必要があるということですか?webpack-encoreプロジェクトのバージョン管理方針

それは私にはドキュメントが示唆しているようですが、それはマージ競合地獄を意味しないでしょうか?コンパイルされたファイルはマージできません。

また、バージョン管理哲学に反していないでしょうか?私が知る限り、コンパイルされた言語(つまりC/C++)でバイナリを公開するのではなく、コードをプッシュしてサーバーでコンパイルすることを期待します。私はこれがjavascriptの「コンパイル」と同じタイプではないことを知っていますが、この場合のプロダクションサーバの予想される動作は何ですか?それらを提供する準備が整ったファイルを受け取るか、リリース時にコンパイルするには?事前に

おかげ

答えて

3

Does that mean I should compile my js and css files on development and push them to the repository, and then to production?

は、正確にはない - それはあなたが展開方法によって異なります。

デプロイ時に、資産を構築するには./node_modules/.bin/encore productionを実行する必要があります。これを済ませたら、の組み立てられた資産(例えば、web/build)を生産に移す必要があります。

ローカル(または一部の "ビルド"サーバー)でこのコマンドを実行し、すべてのファイルを本番環境に転送できます。または、プロダクションでgit pullを使用してから、このコマンドを本番で実行することができます(本番環境にNode.jsがインストールされている必要があります)。

ビルドしたファイルをリポジトリにコミットする必要はありません。しかし、...デプロイを簡略化すると(つまり、git pullを実行してやりたいと思っている)、本当の問題はありません。

私はちょうどよくある質問(http://symfony.com/doc/current/frontend/encore/faq.html)でこれらを答えるためにPRを追加しました - それが展開されるまでここにPRです:https://github.com/symfony/symfony-docs/pull/8109

乾杯を!

1

解決方法1:

  1. ローカルで実行yarn run encore productionファイルが作成されてい
  2. チェックアウトは/
  3. プッシュをコミットVCSにそれらを追加/変更展開

解決策2:あなたは余分な人のチェックを必要としないので、

  1. プッシュ/私の目への展開

時にリモートで

  • 実行yarn run encore productionを展開第二ソリューションは、道優れています導入前はすべてが自動化されています。 しかし、これには大きな欠点があります。ビルドアセットは処理が遅くなる可能性があり、デプロイすると、アセットが構築されるまで5〜20秒で生産が停止します。 manifest.jsonファイルはプロセスの開始時に削除され、後にゼロから作成されたように見えます

    An exception has been thrown during the rendering of a template ("Asset manifest file "[...]/web/build/manifest.json" does not exist.").

    はここでHTTP 500エラーです。

    改善する必要があるものはありますか?

  • 関連する問題