164

angular-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

2番目npm installは完全なレポを提供しますが、コマンドを使用したときのようにビルドされませんnpm install angular-translate。prepublish スクリプトを実行するという議論を見たことがありますが、すべてのモジュールをインストールするときにこれを行う方法がわかりません。また、フォークを独自のモジュールとして npm レジストリに公開しようとしましたが、ビルドが得られず、それが正しいことかどうかわかりません...

トピックに関する私の無知をお詫び申し上げます。npm の経験はあまりありません。この問題についてフィードバックをいただければ幸いです。パッケージのソース コードを変更する必要がある場合、よくある問題のように思えますか? たぶん、より良い解決策がありますか?

4

6 に答える 6

174

を試してみnpm install <ghusername>/<repoName><ghUsername>ください。これで正しくインストールされるはずです。ほとんどの場合、インストール コマンドでorフラグを使用して、依存関係を.@<repoName>--save--save-devpackage.json

それが正しく機能しない場合は、.npmignoreファイルの内容を確認してください。

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


編集:

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

見苦しいですが、この場合は から削除dist/してから.gitignore実行する必要があります:

npm run build
git add .
git commit
git push

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

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

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

于 2016-11-10T13:30:04.687 に答える
22

npm 5 を使用している場合の更新:

npm@5 以降、prepublishスクリプトは廃止されました。

prepareビルド手順とprepublishOnlyアップロードのみに使用します。

"prepare": "npm run build"スクリプトに a を追加すると、すべての問題が解決することがわかりました。

于 2018-05-23T14:09:05.730 に答える