2017-02-27 9 views
2

フロントエンドにはReact、バックエンドにはDjangoというWebアプリケーションを開発しています。私はWebpackを使って、Reactアプリケーションの変更とバンドルコードを監視します。npmスクリプトをmanage.py runserverで実行できますか?

問題は、私は同時に2つのコマンドを実行する必要があること、リアクト用とDjangoのための他のいずれかです。

webpack --config webpack.config.js --watch 
./manage.py runserver 

npm run start:devのように、NPMのスクリプトを実行するためにrunserverコマンドをカスタマイズする方法はありますか? Node.jsをバックエンドプラットフォームとして使用する場合は、npm run build:client && npm run start:serverのような類似のジョブを実行できます。

+0

あなたは両方のタスクを実行するためにハリやガルプを調べましたか? – turbotux

答えて

0

組み込みの管理コマンドを混乱させるべきではありませんが、自分で作ることができます:https://docs.djangoproject.com/en/1.10/howto/custom-management-commands/

私はrunserverの場所に置き、カスタム(npmの場合)スクリプトを実行するためにos.execvpを作成します。

理論上は、たとえばdjango.core.management.execute_from_command_lineの2つの並列サブプロセスを実行し、スクリプトを実行することができます。しかし、それはpbdのようなツールを使用することができなくなります(これは非常に困難です)。

DockerとDockerを活用する方法です。その後、docker-compose up -dデータベースサービス、npmスクリプト、redisなどをバックグラウンドで実行すると(別にrunserverが実行されますが、これは別のトピックです)。

1

すでにwebpackとdjangoを使用している場合は、おそらくwebpack-bundle-trackerとdjango-webpack-loaderの使用に興味があります。

webpack-bundle-trackerは、バンドルが構築されるたびにstats.jsonファイルを作成し、django-webpack-loaderはstats.jsonファイルがdevサーバを再起動するのを監視します。このスタックは、サーバーとクライアントの間の懸念を分離することを可能にします。

explainingこのパイプラインにはa coupleの投稿があります。

関連する問題