7

私はnode.jsアプリを構築しており、同時にアプリに必要なモジュールも開発しています。一部のモジュールには peerDependencies があり、開発環境を最適に構築する方法を見つけるのに苦労しています。

私がこれまでに持っているもの:

/node-projects
|--/myApp
|----/node_modules
|------/symlink to module1
|------/symlink to module2
|
|--/module1
|
|--/module2

npm link私は自分のアプリの node_modules にプロジェクト ルートのモジュールへのシンボリック リンクを作成するために使用します。これにより、個々のモジュールとアプリケーションを簡単に git push/pull できます。

ただし、module2 が module1 を peerDependency として指定すると、アプリが起動せず、module2 が module1 を見つけられないというエラーが発生します。これは、実際には node_modules ディレクトリに一緒にいないためだと思います。

module2のシンボリックリンクがmodule1のシンボリックリンクを認識できるようにする、私が見逃しているパズルのピースはありますか? それとも、私が達成しようとしていることは、現在 npm では不可能ですか? カスタム モジュールを git/github と同期させながら、メイン アプリでもそれらを要求するためのより良い戦略はありますか?

4

1 に答える 1

3

さらに調査を行った後、私が達成しようとしていることは現在、 のみを使用して行うことnpm linkはできないようであり、npm のみを使用してこの種のワークフローをセットアップする簡単な答えはないようです。

npm の github レポジトリでこの問題を読んでみると、解決策が示されていなくても、他の人が同じフラストレーションを経験していることがわかります。

また、まだ試していませんが、私の質問に完全に解決策を提供しているように見えるモジュールnpm-workspaceにも出会いました。

もう 1 つの可能性は、Git サブモジュールを使用することです。しかし、git サブモジュールについて読んでいると、正しくセットアップするのが難しいという苦情がたくさんあります。サブモジュールを誤ってメインの git リポジトリに含めるのは信じられないほど簡単に思えます。

npm-workspace をテストする機会が得られるまで、自分の回答を受け入れるのを待ちます。それまでの間、誰かがより良い解決策を提案してくれるかもしれません。

于 2013-09-17T20:48:19.403 に答える