web-dev-qa-db-ja.com

npmが.npmrcファイルを読み取らない

プライベートリポジトリからライブラリをインストールしようとしていますが、npmを使用しようとするとエラーが発生し続けます。

私が使用しています:OSX Mavericks 10.9.3 Node v0.10.28 npm 1.4.10(これは1.4.13を試した後にインストールされましたが、それでも動作しません)

私はこれをホームディレクトリから実行しており、~/.npmrcファイルがディレクトリにあります。

コマンドを実行するたびに:npm install 'library name here'

次のエラーが発生します。

npm http GET https://registry.npmjs.org/dslib-js
npm http 404 https://registry.npmjs.org/dslib-js
npm ERR! 404 404 Not Found: dslib-js
npm ERR! 404 
npm ERR! 404 'dslib-js' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 
npm ERR! 404 Maybe try 'npm search dslib'
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "dslib-js"
npm ERR! cwd /Users/marcos.pedreiro
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! code E404
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/marcos.pedreiro/npm-debug.log
npm ERR! not ok code 0

編集:

(ホームディレクトリで)ls -aを実行すると、出力は次のようになります。

.           .ssh            Music
..          .Subversion     Pictures
.CFUserTextEncoding .vagrant.d      Public
.DS_Store       Applications        VirtualBox VMs
.Trash          Desktop         clients
.bash_history       Documents       dev
.gradle         Downloads       npm-debug.log
.matlab         Google Drive        ~:.npmrc
.npm            Library         ~:.npmrc.template
.npmrc.bak      Movies

これはコマンドnpm config ls -l | grep configの出力です

; cli configs
globalconfig = "/usr/local/etc/npmrc"
userconfig = "/Users/marcos.pedreiro/.npmrc"

:編集の終了

どんな助けでも大歓迎です。ありがとう!

14
Maverick

投稿したものが本当にls -aの出力である場合は、ファイル名が間違っています。

~:.npmrc.npmrcという名前にする必要があります。

冒頭の〜は、シェルショートカットを使用してファイルをホームディレクトリ(cp .npmrc ~:.npmrcなど)に配置することを示唆しています。問題はおそらくコロンです。~/は「マイホームディレクトリ」と解釈されます、ただし~something/は、somethingという名前のユーザーのホームディレクトリとして解釈されます。ユーザーsomethingがないため、システムはおそらく〜:をリテラルテキストとして扱います。

ファイルの名前を変更してみて、それが機能するかどうかを確認します。

mv "~:.npmrc" .npmrc
7
Brandon

私の場合、文字エンコーディングが何らかの理由で間違っていたので、UTF-8に変換する必要がありました。

「npm get」を使用して問題を発見したところ、結果はu/2411 ...文字列でいっぱいでした。

9
Segimerus

誰かがここに着陸するのに役立つ場合:プロジェクトルートにnpm-shrinkwrap.jsonファイルがあり、.npmrcregistry構成を上書きしていました。シュリンクラップファイルを削除すると、問題が解決しました。

5
Pedro

Nodeパッケージdslib-jsがプライベートnpmリポジトリ内に含まれていると想定しています。ローカル.npmrcファイルにそのリポジトリを設定する必要があります。たとえば、リポジトリがhttp://myrepo.com:4000にある場合は、次のコマンドを実行します。

$ npm set registry "http://myrepo.com:4000"

上記のエラーは、次のURLにアクセスして確認できるように、パッケージdslib-jsがnpmjs.orgで利用できないためです。 https://www.npmjs.org/package/dslib- js 。デフォルトでは(.npmrcファイルにレジストリが設定されていない場合)、npmはhttps://registry.npmjs.org(上記で貼り付けたURLを介してWebで閲覧できます)を検索します。

3
dylants

Windowsを実行している人は、Windowsがファイル拡張子を隠していないか確認してください。私にとって、Windowsはファイル名が.npmrcであると言っていましたが、実際のファイル名は.npmrc.txtでした。

.txt拡張機能を削除すると、問題が修正されました。

3
AJ Richardson

これが誰かに役立つ場合...私の問題は、テキストエディターで.npmrcファイルを作成したため、npmがファイルのアクセス許可のためにファイルを無視していたことです。それを修正するために、ファイルを削除しました。次に、コマンドラインからファイルを作り直しました。

乾杯!

1
rardoz

私のプライベートレポジトリに公開されているパッケージをダウンロードするためのいくつかのことを逃しました。

Firstファイル名は.npmrc.txt の代わりに .npmrc。 Windowsでは、ファイル名を直接作成することはできません。だから私はコマンドプロンプトを開いてから発砲しました

echo "auth_token" > .npmrc

2番目貼り付けたところですauth_token in .npmrcファイル。レジストリアドレスも追加する必要があります。

//**.**.visualstudio.com/_packaging/**/npm/registry/:_authToken=token_here
0
Sunil Garg