私は現在、JavaScript を使用して Windows 8 アプリケーションを構築するチームの一員です。npm と browserify を使用して依存関係を管理し、モジュールを AMD ブラウザーに適した形式に変換します。
私たちが直面している問題の 1 つは、クレイジーなパスの要求です。これは、アプリケーションの「コンポーネント」内に最上位のフォルダーがあるためです。このフォルダーには、ネストされた ui コンポーネント/モジュールが多数含まれています。これらのモジュールは、lib ディレクトリに存在する lib ユーティリティとヘルパーを必要とする場合があります。
たとえば、「my/app/components/product/grid/item」にあるモジュールには、「my/app/lib/helpers/view」にあるヘルパー モジュールが必要になる場合があります。
必要なパスは少しクレイジーで非常に醜いです:
モジュール方式でアプリケーションを組み込むために最善を尽くしています。これにアプローチする適切な方法は、コンポーネント モジュールをこれらの util ヘルパー モジュールに依存させることだと思います。lib ヘルパーを独自の外部プライベート git リポジトリに配置することもできましたが、他のチームにアクセス権を与えるという点では苦労しました (さらに、git プライベート リポジトリは低速です)。さらに、これらのモジュールはアプリケーションでのみ使用されるため、変更を加えて変更をプッシュし、アプリケーションに戻って npm を更新するのは時間の無駄です。これは一部の人にとっては問題ありませんが、これを本当に分解すると、すぐに古くなる可能性があります.
コンポーネント package.json 内で npm install "my/app/lib/helpers/view" を実行できますか? しかし、npm install はこれを自動的に行いません。
私はこれを回避するいくつかの他の方法を知っています (NODE_PATH、おそらく npm install フックまたは npm preinstall スクリプトを使用します) が、他の誰かが同様の問題と適切な解決策を持っているかどうかを知りたいと思っていました.