マルチモジュールNode.jsアプリ開発は楽しく、迅速かつ安全になります
この記事はあなたの日を節約します
- Node.jsアプリは、2つ以上の分離されたモジュール/ライブラリに分散しています
- クロスモジュール機能があります
作業する開発者が増えるにつれてアプリが大きくなるにつれて、アプリを小さなコード(モジュール/ライブラリ)に分割すると、チームが小さなコードベースで作業しているときに慣れていた柔軟性と速度を維持するのに役立ちます。
チャレンジ
モジュールは単一のアプリの一部であり、通常は相互に依存しています。したがって、1つのモジュールの変更は、通常、他のモジュールに影響します。
モジュールをローカルで開発するのはかなり簡単ですが、モジュールが使用されている実際のアプリに変更をプッシュするのは簡単な作業ではありません。
そしてそれが(苦痛)ポイントです
開発環境で作業を終えたときに、これまで取り組んできた機能が関連するすべてのモジュールでうまく機能することをどのように確認できますか?
確信が持てない場合は、機能を提供する準備ができていることを確認するために多くの時間を費やすことになります。
例を見てみましょう
2つのモジュールがあります。
--Lib
— package.json
— node_modules
-アプリ
—Package.json
—node_modules
AppモジュールはLibに依存しています。ここで、Appで開発している機能については、Libで変更を加える必要があります。
2つのオプションがあります。
- デプロイ後に変更を適用して確認
し、機能を開発→アプリをビルド→QA→バグを見つける→修正→ビルド→QA→すべてが正常であれば完了、そうでない場合は→サイクルを再開します。
この方法では、1つのモジュールに変更を加え、正常に機能し、アプリのテストに合格することを期待しています。統合をテストするには、関連する変更を加えてアプリケーションを構築する必要があります。 - コーディング中に変更を適用して確認し、
Appを実行します→MyApp / node_modules / Lib / myLib.jsに移動し、そこで変更を加えます。統合をライブで確認できます。
node_modulesはGitによって追跡されないため、変更内容を正確に記憶し、変更内容をApp / node_modules / Lib/myLib.jsからLib/myLib.jsに手動で同期して、後でgitにコミットして公開できるようにする必要があります。
ソリューション
ソース管理下でLibで機能を開発し、公開する前にアプリでの変更を確認します。これで、完了したら、関連するすべてのモジュールをソース管理にプッシュしてアプリを構築します。
- 面倒なコピーペーストはありません
- それがうまくいくことを期待する必要はありません
- 自然な開発プロセス
モジュールを同期するためのCLIツール。Syncliは、マルチモジュールアプリの開発をより迅速かつ安全にするためのツールです。開発環境で2つのモジュールを同期するだけで、単一のモジュールであるかのようにマルチモジュール機能を操作できます。
フードの下
Syncliはwatchman-makeを使用してファイルの変更を監視します。変更が検出されると、Syncliは、編集中のファイルとnode_modules(または指定された宛先パス)の下の対応するファイルの間で、rsyncを使用してシームレスに同期します。
どれくらい簡単ですか?
Libフォルダーから、Appのnode_modules(../App/node_modules/Lib)内の対応するLibのパスを使用してSyncliを実行します→これで、Libの下のファイルに加えた変更はすべてApp / node_modules/Libにシームレスに同期されます
Syncliは柔軟です
名前またはファイルタイプによって、監視または無視するファイル/フォルダを選択できます。心配しないでください、それはあなたがあなたの仕事に集中することができるように素晴らしいデフォルト構成を持っています。
WixMobileでの使用方法
まず、作業方法を(非常に、非常に)短く
します。1。React Nativeを使用します
。2。すべてのネイティブコードと依存関係は、「エンジン」と呼ばれるプロジェクトにあります。
3.他のすべてのコードは、「エンジン」に接続されたJavaScriptモジュールで開発されます(たとえば、予約、ストア、チャット、ブログ、フォーラム、通知などに個別のモジュールがあります)。
詳細—OmriBruchimによるすばらしいブログ投稿シリーズ
マルチモジュール統合の課題に気づきましたか?
それがまさに私がSyncliを作成した理由です。クロスモジュール機能があり、Syncliを使用すると、クロスモジュール機能の開発がより安全かつ迅速になります。
Syncliの改善にご協力ください。
マルチモジュールアプリの開発を楽しく、迅速かつ安全にするためにここにあります。提案がある場合、または不足している機能を見つけた場合は、問題/PRを開いてください。