web-dev-qa-db-ja.com

Windowsに認証プロキシの背後にNPMをインストールする方法?

Windows上で最新バージョンのNodeとNPMを実行する必要があります。私はNode 0.5.8をインストールし、GitHubからNPMのソースをダウンロードしました。 NPMをインストールするための手順はGitHubのサイトに記載されていましたが、次のコマンドを実行すると問題が発生します。

node cli.js install npm -gf

しかし、次のエラーメッセージが表示されて失敗します。

Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)

System Windows_NT 5.1.2600
command "...\\Node\\bin\\node.exe" "...\\npm\\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN

インターネットに接続するにはプロキシで認証が​​必要なので、これは問題だと思います。しかし、ログインに自分の認証情報を使用するようにインストーラに指示する方法はありませんでした。私のプロキシIPとログイン情報をnpmインストールに提供する可能性はあるでしょうか?おそらくコマンドライン引数を通して。

必要に応じて、Pastebinを使って完全なログを提供することができます(ただし、これ以上関連情報はないようです)。

30
Tobias

set http_proxyは私には本当にうまくいきましたが、コマンドプロンプトを開くたびにそれを入力しなければなりませんでした。だから私は複数の答えを組み合わせる必要がありました、そして今私のものは永久的です。

私のシーケンスは次のようになりました:

  • C:\Users\YourUserNameに行く
  • .npmrcという名前のファイルを作成します。
  • そのファイルの中に次のように入力します(ADドメインにいる場合)。

proxy = http://domain\\username:password@ip:port

  • またはこれを使用して、あなたはADドメインにいないです:

proxy = http://username:password@ip:port

  • ファイルを保存する
  • コマンドプロンプトを開き、npmを使用してみます

他の人達は次のような追加コマンドでさらに成功しました:

strict-ssl = false

*上記の「IP」の代わりにIPアドレスまたはプロキシへのURLを使用できるはずです。

あなたのプロキシ文字列を少し微調整する必要があるかもしれませんが、これは私がこれを毎回追加する必要がないようにしました。

乾杯

39
Eric Steinborn

多分環境変数を設定することはあなたのために働くでしょう:

set HTTP_PROXY=http://user:[email protected]:port

(私の場合は、これで "connect UNKNOWN"が解決されますが、まったく異なる "socket hang up"エラーが発生します。HTTPS_PROXY環境変数も設定しようとしましたが、同じ結果になりました。)

10
nafisto

私はこの同じ問題を抱えていました、そしてこれが私がこの仕事をするためにしたことです:

  • C:\Users\YourUserNameにアクセスしてください。
  • .npmrcという名前のファイルを作成します。
  • そしてそれはエントリが読むでしょう:

    registry = http://registry.npmjs.org
    
  • node cli.js install npm -gfコマンドを再試行してください。

8
sam

いくつかの調査の後、私はこのようにそれを使うことができました:

  1. NTLM認証プロキシサーバー、またはNTLM用の別のプロキシサーバー(Cntlmなど)をインストールします。個人的には、Pythonサーバーを好むのですが、それをいじり回すことができ、パフォーマンスも問題にならないからです。

  2. 構成を設定します。私の場合は、LMモードとNTモードの両方を有効にしなければならなかったことに注意してください。そして、今日では、それが通常のケースであると思われるでしょう。

  3. ローカルプロキシを指すようにhttp_proxyおよびhttps_proxy環境変数を設定します。

    set http_proxy = "localhost:5865"
    set https_proxy = "localhost:5865"

  4. npmは今動作するはずです、もちろんそれは上の環境変数が定義されているシェルから実行されるべきです。

4
rob

これをコマンドラインで入力します。

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

HTTP://をユーザー名の前に含めることを忘れないでください。それは私のために働きました。

3
Super Luvdub

次は私のために働いた。

Windows 7の場合

npm config set proxy xxhttp://username:password@proxyhost:port# 

これで.npmrcフォルダにC:/users/<username>という名前のファイルが作成されます。

3
Chummar

上記の各答えは、ユーザーが自分のパスワードをテキストファイルまたは環境変数に書き込む必要があります。

個人的に私は彼らの安全でないアプローチのためにこれらのような解決策が好きではありませんでした。そこで私は、クライアント(npm、bower、git)とプロキシの間のやり取りで現在のユーザのKerberosトークンを注入するアプリケーションを作成しようとしました。そうは言っても、Active DirectoryはKerberosの独自の実装にすぎません。

私は毎日、Windows 8.1ホスト上でこのソフトウェアを使用しています。あなたはコード(golang)と最初のリリースのバイナリを https://github.com/nilleb/authentication-proxy で見つけることができます。

2
nilleb

この問題は、上記のように。npmrcファイルを作成し、adduserコマンドを実行してcmdプロンプトを実行することで解決しました。

npm adduser

次のコマンドを実行して、あなたが許可されたユーザー名を持っているかどうか確認してください。

npm whoami
2
John

サーバーの管理者またはサポートからプロキシのホストとポートを取得します。

設定後

npm config set http_proxy http://username:[email protected]:itsport
npm config set proxy http://username:[email protected]:itsport

パスワードに特殊文字がある場合は、%urlencodeを試してください。例: - ポンド(ハッシュ)は、%23に置き換えてください。

1
Shamseer

少なくともWindowsでは、それは私にとっては次の設定で動作します。

proxy = http://ドメイン%5Cusernameパスワード@proxy_ip

すなわち、(1)(他で提案されているように)%5Cの代わりに\を使用し、(2)プロキシサーバーのローカルマシン名の代わりにIPアドレスを使用する。

1
Ganesh

3つすべてが.npmrcで私のために働きました

proxy = http://unam:pwd@Host:port
https-proxy = http://unam:pwd@Host:port
registry = http://registry.npmjs.org
1
catrapture

CNTLMは私のために働きませんでした。私はすべての可能な組み合わせを試しました。 NPMが認証エラーを出していました。フィドラーは救助のために来て、私の時間を節約しました。インストールと設定は簡単です。 Fiddler RuleをAutomatically Authenticatedに設定します。In.npmrcを設定します。

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

それは私のために働きました:)

0
user588459

私にとってうまくいったのは以下の通りです。

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

ユーザー名やパスワードを入力する必要はなく、単にPACファイルのURLを入力するだけでした。

0
Kunal Nanda

解決策は次のとおりです。

npm config http_proxy http://ユーザー名パスワード@Host/IP )ポート

npm設定プロキシhttp://ユーザー名パスワード@ホスト/ IPポート

私の場合は、パラメータを値に置き換えます

ユーザー名:(空)

パスワード:(空)

ホスト/ IP:192.36.36.110

ポート:8080

だから私のコマンドは

npm config set http_proxy http://:@ 192.36.36.110:8080

npm設定プロキシ http://:@ 192.36.36.110:8080

0
srujan maddula