2016-11-10 9 views
34

これはまったく新しい質問ではありませんが、私は今のところよく見ていますが、解決策を見つけるのが難しいです。npm forked github repoのインストールと構築

私はangle-translateという角型アプリケーション用のモジュールを使用しています。しかし、ソースコードを少し修正してすべてのものがうまくいくようにしなければなりませんでした。今ではその変更をnpm installに残したいと思います。同僚は、私がソースコードのレポをフォークし、自分のフォークしたレポを依存関係として指摘することを提案しました。

npm install https://github.com/myRepo/angular-translate 
npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz 

最初に、このようなディレクトリを作成せずに作成します。ただ、package.json、.npmignore、およびいくつかのマークダウンファイル

-angular-translate 
    .npmignore 
    .nvmrc 
    CHANGELOG.md 
    package.json 
    etc 

npm installは私に完全なレポを与えるが、再び私は、コマンドnpm install angular-translateを使用するときのようなビルドを得ることはありません。私は事前公開スクリプトを実行する方法をいくつか見てきましたが、すべてのモジュールをインストールするときにこれを行う方法がわかりません。私はまた、npmレジストリへの自分のモジュールとしてフォークを公開しようとしましたが、ビルドもなくなりました。私はそれが正しいことを確信していません...

私は私の無知を謝りますトピック。私はnpmで膨大な経験がありません。この問題についていくつかのフィードバックを得たいと考えています。パッケージのソースコードに変更を加える必要がある場合は、よくある問題のようです。多分もっと良い解決策がありますか?あなたの助けを前にありがとう。

答えて

38

npm install <ghusername>/<repoName>を試してください。<ghUsername>はGitHubのユーザー名(@なし)、<repoName>はリポジトリの名前です。それは正しくインストールする必要があります。ほとんどの場合、package.jsonの依存関係を保存するには、--saveまたは--save-devフラグをinstallコマンドで使用することをお勧めします。

正しく動作しない場合は、.npmignoreファイルの内容を確認してください。

インストールに時間がかかる場合は、パニックにはなりません。 gitリポジトリからのインストールは、npmレジストリからのインストールよりも遅いです。


編集:

あなたの問題は、(それが.gitignoreであるため)あなたのケースでは、dist/がレポにコミットされていないということです。実際のコードがそこにあります。 dist/は、パッケージがnpmレジストリに公開される前にsrc/のファイルから作成されますが、dist/は決してrepoにコミットされません。

それは醜いですが、この場合には、あなたは.gitignoreからdist/を削除してから実行する必要があります:

npm run build 
git add . 
git commit 
git push 

(あなたが最初npm installを実行していることを確認してください)

あなたは、その後のことができるようにすべきですgithubからインストールします。

postinstallスクリプトを使用してこれを行う別の方法がありますが、可能かどうかはわかりません。私はそれを試したことはありません。

+0

返信いただきありがとうございます。試してみたが、最初のnpmのインストールと同じ結果が得られた。私は.npmignoreファイルを削除しようとしましたが、2番目の結果と同じように、リポジトリ全体を取得します。ビルドが起こっていないという問題は依然として残っています。 – hughesjmh

+0

@hughesjmh Strange。実際のリポジトリのURLは何ですか?私はこれを自分で試してみたいと思います。 – RyanZim

+0

今、わかりました。私は私の答えを編集しました。 – RyanZim

関連する問題