プライベートリポジトリからライブラリをインストールしようとしていますが、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"
:編集の終了
どんな助けでも大歓迎です。ありがとう!
投稿したものが本当にls -a
の出力である場合は、ファイル名が間違っています。
~:.npmrc
は.npmrc
という名前にする必要があります。
冒頭の〜は、シェルショートカットを使用してファイルをホームディレクトリ(cp .npmrc ~:.npmrc
など)に配置することを示唆しています。問題はおそらくコロンです。~/
は「マイホームディレクトリ」と解釈されます、ただし~something/
は、something
という名前のユーザーのホームディレクトリとして解釈されます。ユーザーsomething
がないため、システムはおそらく〜:をリテラルテキストとして扱います。
ファイルの名前を変更してみて、それが機能するかどうかを確認します。
mv "~:.npmrc" .npmrc
私の場合、文字エンコーディングが何らかの理由で間違っていたので、UTF-8に変換する必要がありました。
「npm get」を使用して問題を発見したところ、結果はu/2411 ...文字列でいっぱいでした。
誰かがここに着陸するのに役立つ場合:プロジェクトルートにnpm-shrinkwrap.json
ファイルがあり、.npmrc
のregistry
構成を上書きしていました。シュリンクラップファイルを削除すると、問題が解決しました。
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で閲覧できます)を検索します。
Windowsを実行している人は、Windowsがファイル拡張子を隠していないか確認してください。私にとって、Windowsはファイル名が.npmrc
であると言っていましたが、実際のファイル名は.npmrc.txt
でした。
.txt
拡張機能を削除すると、問題が修正されました。
これが誰かに役立つ場合...私の問題は、テキストエディターで.npmrcファイルを作成したため、npmがファイルのアクセス許可のためにファイルを無視していたことです。それを修正するために、ファイルを削除しました。次に、コマンドラインからファイルを作り直しました。
乾杯!
私のプライベートレポジトリに公開されているパッケージをダウンロードするためのいくつかのことを逃しました。
Firstファイル名は.npmrc.txt
の代わりに .npmrc
。 Windowsでは、ファイル名を直接作成することはできません。だから私はコマンドプロンプトを開いてから発砲しました
echo "auth_token" > .npmrc
2番目貼り付けたところですauth_token
in .npmrc
ファイル。レジストリアドレスも追加する必要があります。
//**.**.visualstudio.com/_packaging/**/npm/registry/:_authToken=token_here