2016-06-25 5 views
1

私はまだgitを使ってWebアプリケーションを開発しているのですか?私は今この問題を数回見つけて、それを解決するための好ましい方法が何であるかコミュニティに尋ねたいと思っていました。問題は、いくつかのnpmモジュールをインポートするWebアプリケーションMyWebAppに取り組んでいるとします。第三者npmモジュールModule1を使用しているとします。今、私はModule1にいくつかの機能が必要ですが、今はそこにはありませんので、私はこれらの機能を自分で追加して、私が完了したらPRを提出したいと思います。現在はnode_modulesディレクトリが.gitignoreファイルに含まれているので、gitはnode_modulesディレクトリの下で直接行った変更を追跡しません。さらに、元のModule1リポジトリからrepoをフォークしてPRを送信する必要があります。だから、package.jsonと言ってModule1: "username/Module1と更新し、別のディレクトリにフォークされたレポをクローンして、そこにある機能に追加を開始します。npm update Module1のときに取得します。ここに問題がある場所があります。新しい機能を追加することは反復的なプロセスなので、複製されたリポジトリに何かを追加して、変更をプッシュしてからnpm update Module1を実行するだけで、もう少し小さなものを逃したことがわかり、すべてが再び始まります。アプリケーションで作業中にgithubでPRを送信するために第三者のnpmモジュールを強化するには

この問題を回避するにはどうすればよいですか?彼らは、Webアプリケーション内のnode_modulesディレクトリ自体の分岐したModule1のレポをクローンしていますか?それがうまくいくかどうかはわかりません。あなたの解決策を教えてください。ありがとう!

+0

npmがどのように正確に動作するのかわかりませんが、いくつかのpackagemanagersはリポジトリを複製するだけですので、 'node_modules/some_module'はgitリポジトリかもしれません。 – tkausl

答えて

1

これは、人々がプロジェクトの依存関係としてgitサブツリーを使用しようとしていて、サブツリーにコミットをバックポートしないという通常の問題に逆行するためです。彼らの場合は、npmのようなパッケージマネージャを使用する必要があります。反対のシナリオがあります。これらのパッケージを依存関係として含めるのではなく、親プロジェクトリポジトリにサブツリーとして移植する必要があります。その後、パッケージのクローンのサブツリーリポジトリにコミットをバックポートする手順をGoogleに簡単に伝え、最後にプルリクエストをベンダーに公開することができます。

+0

お返事ありがとうございます。それは正しい方向を見るように私に指摘している。この要点は、ワークフローとコマンドをうまく使いこなすためのものです。https://gist.github.com/kvnsmth/4688345 –

関連する問題