npm WARN package.json:リポジトリフィールドなし


810

次のコマンドでExpress.jsをインストールしました。

sudo npm install -g express

次の警告が表示されます。

npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.

Node.jsとExpress.jsは初めてです。上記の警告が表示されるのはなぜですか?心配する必要がありますか?


19
1年後にこの質問を見て、私はnpmパッケージをインストールするたびにこれらの警告をすべて精神的に消去していることに気づきました。これは、パッケージ開発者がおそらくもう少し注意する必要があることです。
nha

@nhaええ、私は通常、いくつかのnpm操作を実行するときにこれらの警告を表示し、開発しているパッケージにある場合はそれらを修正します。
gustavohenke 2014年

29
プライベートリポジトリの場合は、"private": truepackage.jsonに追加してください
2015年

回答:


1280

これはNPM v1.2.20のチェックに過ぎず、警告として報告されます。

しかし、心配しないで、そこにあるsoooooooがまだ持っていない多くのパッケージrepository彼らの中にフィールドがpackage.json。このフィールドは情報提供の目的で使用されます。

あなたがパッケージ作成者である場合は、次のようにをに入れrepositoryますpackage.json

"repository": {
  "type": "git",
  "url": "git://github.com/username/repository.git"
}

repositoryフィールドの詳細を読み、詳細についてはログに記録されたバグを参照してください。


さらに、 @ dan_nlによって最初に報告されたように、にprivateキーを設定できますpackage.json
これnpm publishにより、アプリが誤って実行されるのを防ぐだけでなく、NPMがpackage.json問題に関する警告を出力するのを防ぐことができます。

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}

20
私の回答から数か月後、今のところ問題はないようです:)
gustavohenke

2
NPM 2.14 repositoryは、空でprivatetrueに設定されている場合にエラーを出力するようになりました。
ブレイズ

9
@ブレーズ、私はNPM 3.3.3を使用しても警告を受けませんprivate: true
gustavohenke

3
質問、なぜデフォルトでは「プライベート」ではないのですか。つまり、実際に公開されている数に対して作成されたnpmプロジェクトの数は、ユーザーコードよりも実際に多くのライブラリコードがあるのでしょうか。
Felype、2017年

1
プライベートをありがとう:本当、どういうわけか、私はここ何年もこれを逃しました。
Jeremy Chone

394

アプリケーションを実際のリポジトリに配置する予定がない場合は、アプリケーションをプライベートとしてマークすることもできます。

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}

51

dan_nlが述べたように、package.jsonにプライベートな偽のリポジトリを追加できます。名前やバージョンも必要ありません。

{
  ...,
  "repository": {
    "private": true
  }
}

更新:この機能は文書化されておらず、機能しない可能性があります。次のオプションを選択します。

さらに良い方法:privateフラグを直接設定します。このようにして、npmはREADMEファイルも要求しません。

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}

この回答について別のユーザーについて通知を受けた。以下のように見えるrepository.privateによると、(またはそれはもはや受け入れられている)行動を文書化されていませんdocs.npmjs.com/files/package.json
gustavohenke 2018

1
@gustavohenke:ありがとう、それはあなたが正しいようです- privateとにかくトップレベルのプロパティがより良いオプションなので。私の答えを更新しました。
ワートワート2018

46

独自のから取得する場合はpackage.jsonrepositoryフィールドを追加してください。(実際のリポジトリへのリンクを使用):

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }

完全なgithubプロジェクトファイルリンク(http://またはhttps://!を含む)を使用することを明確にしていただきありがとうございます
twknab


9

プロジェクトの単純なword- package.jsonにはリポジトリのプロパティがないため、追加する必要があります。

以下のようにpackage.jsonにリポジトリを追加する必要があります

ここに画像の説明を入力してください

そして、あなたのシナリオに従って説明させてください

以下のようなリポジトリフィールドを追加する必要があります

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }

7

次のような警告を回避するには:

npm WARN project.com@1.0.0 No repository field.

プロジェクトのpackage.jsonでリポジトリを定義する必要があります。リポジトリに公開しないで開発している場合は"private": true、package.jsonで設定できます。

例:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}

これに関するNPMドキュメント:https : //docs.npmjs.com/files/package.json


6

リポジトリを指定したくない場合は、次の行をpackage.jsonファイルに追加できます。

"description":"",
"version":"0.0.1",
"private":true,

それでうまくいきました。
を追加privateすると、リポジトリにリンクする必要がなくなります。


4

これはあなた自身があなた自身の正しい詳細の使用を見つけるのに役立ちます

npm ls dist-tag

これにより正しい情報が表示されるので、バージョンファイルの場所などを推測できません

楽しい :)


1
私は '--empty
MJ

3

はい、おそらく-fコマンドの最後に含めることで再作成できます


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.