4

いくつかのサポート ライブラリを使用してノード アプリを開発しようとしています。プロジェクトはすべて、ssh 経由でアクセスできるプライベート リポジトリに存在します。ユーザー名とパスワードによる認証はオプションではありません。

これまでのところ、gitリポジトリのURLをpackage.jsonに追加してきました

"dependencies": {
  "my-library":"git+ssh://git@repo-url:repo-name.git#master"
},

再現可能なビルドにつながらないため、これは良くありません。つまり、クライアント コードとライブラリを同時に開発するには、小さな変更ごとにプッシュする必要があります。

npm linkこれを解決するには理想的ですが、ライブラリ ディレクトリで npm リンクを実行すると、次のエラーが発生します。

~/mylibrary$ npm link
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/mockelganger'
etc etc

システムのグローバルな場所を変更しようとしています。

~/mylibrary$ sudo npm link
|it@repo-url's password: -

その「|」「g」を隠しているのは、アニメーション化されたスピナーです。これは、ルートとしてリポジトリにアクセスしようとしたときに git が行うことだと判断しました。なんらかの理由で、自分~/.ssh/id_rsaまたは自分の ssh エージェントが表示されません。

root で ssh-agent を実行する方法を考え出すことで、これを解決できると思いますがnpm link、git から読み取る必要があることさえ意味がありません。自分のコンピュータのみの構成を変更しているのに、なぜネットワークにアクセスしているのでしょうか? これは、私が何か他のことをしていると思わせます。

4

1 に答える 1