1. ホーム
  2. github

[解決済み] フォークされたgithubレポのnpmインストールとビルド

2022-04-25 05:54:20

質問

私はangularアプリでangular-translateというモジュールを使っています。しかし、すべてを思い通りに動作させるために、ソースコードにいくつかの小さな修正を加える必要がありました。 npm install . 同僚は、ソースコードのレポをフォークして、フォークしたレポを依存関係として指摘することを提案しました。これは、例えば、次のような方法で試してみました。

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

1つ目は、このようなディレクトリができ、ビルドはできません。package.json、.npmignore、そしていくつかのマークダウン・ファイルだけです。

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

2番目の npm install を実行すると、完全なレポが得られます。 npm install angular-translate . プリパブリッシュスクリプトを実行するという議論も見ましたが、すべてのモジュールをインストールするときにこれをどのように実行すればいいのかわかりません。 また、フォークを私自身のモジュールとしてnpmレジストリに公開しようとしましたが、やはりビルドはされず、それが正しいことなのかどうかわかりません...。

この件に関して無知であることをお詫びします。 私はnpmの経験があまりありません。この問題についてのフィードバックが欲しいです。 パッケージのソースコードに変更を加える必要がある場合、十分に一般的な問題であるように思えますが?もしかしたら、もっと良い解決策があるかもしれませんね?

解決方法は?

試す npm install <ghusername>/<repoName> ここで <ghUsername> はGitHubでのユーザー名です。 @ はリポジトリの名前です。これで正しくインストールされるはずです。ほとんどの場合 <repoName> または --save フラグをインストールコマンドで指定し、依存関係を --save-dev .

正しく動作しない場合は package.json ファイルを作成します。

インストールコマンドに時間がかかっても慌てないでください。gitリポジトリからのインストールは、npmレジストリからのインストールよりも遅いのです。


編集する

あなたの問題点は、あなたの場合 .npmignore はレポにコミットされません(これは dist/ ). そこが実際のコードの住処です。 .gitignore のファイルからビルドされます。 dist/ は、パッケージが npm レジストリに公開される前に公開されますが src/ がレポにコミットされることはありません。

醜いことですが、この場合は dist/ から dist/ を実行してください。

.gitignore

(を実行したことを確認する)。 npm run build git add . git commit git push を最初に作成します)

その後、githubからインストールすることができるはずです。

を使用して行う別の方法があるかもしれません。 npm install スクリプトがありますが、それが可能かどうか、試したことがないのでわかりません。 編集する Cameron Tacklindが、この方法を詳しく説明した素晴らしい回答を書いています。 https://stackoverflow.com/a/57829251/7127751