JR Galia
JR Galia

Reputation: 17269

Error "npm WARN package.json: No repository field"

I installed Express.js with the following command:

sudo npm install -g express

I get the following warnings:

npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No readme data.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.

Why do I have the above warnings? Should I be worried?

Upvotes: 917

Views: 669455

Answers (12)

dan_nl
dan_nl

Reputation: 4446

You can also mark the application as private if you don’t plan to put it in an actual repository.

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

Upvotes: 410

Brendan Nee
Brendan Nee

Reputation: 5353

If you are getting this from your own package.json, just add the repository field to it. (use the link to your actual repository):

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

Upvotes: 48

muli
muli

Reputation: 47

Try: npm install package.json, npm audit fix --force, ncu -u

Upvotes: 0

gustavohenke
gustavohenke

Reputation: 41440

It's just a check as of NPM v1.2.20, they report this as a warning.

However, don't worry, there are sooooooo many packages which still don't have the repository field in their package.json. The field is used for informational purposes.

In the case you're a package author, put the repository in your package.json, like this:

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

Read more about the repository field, and see the logged bug for further details.


Additionally, as originally reported by @dan_nl, you can set private key in your package.json.
This will not only stop you from accidentally running npm publish in your app, but will also stop NPM from printing warnings regarding package.json problems.

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

Upvotes: 1403

Alnebras Murtada
Alnebras Murtada

Reputation: 135

use npm install -g angular-cli instead of
npm install -g@nagular/cli to install Angular

Upvotes: -1

Alex
Alex

Reputation: 553

To avoid warnings like:

npm WARN [email protected] No repository field.

You must define repository in your project package.json. In the case when you are developing with no publishing to the repository you can set "private": true in package.json

Example:

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

NPM documentation about this: https://docs.npmjs.com/files/package.json

Upvotes: 7

wortwart
wortwart

Reputation: 3350

As dan_nl stated, you can add a private fake repository in package.json. You don't even need name and version for it:

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

Update: This feature is undocumented and might not work. Choose the following option.

Better still: Set the private flag directly. This way npm doesn't ask for a README file either:

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

Upvotes: 56

Rubin bhandari
Rubin bhandari

Reputation: 1951

If you don't want to specify a repository you can add the following lines to the package.json file:

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

That worked for me.
By adding private, you don't need to link to a repo.

Upvotes: 7

Shashwat Gupta
Shashwat Gupta

Reputation: 5264

In Simple word- package.json of your project has not property of repository you must have to add it,

and you have to add repository in your package.json like below

enter image description here

and Let me explain according to your scenario

you must have to add repository field something like below

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

Upvotes: 8

Ian Croasdell
Ian Croasdell

Reputation: 91

this will help all of you to find your own correct details use

npm ls dist-tag

this will then show the correct info so you don't guess the version file location etc

enjoy :)

Upvotes: 4

Jsalim
Jsalim

Reputation: 51

Yes, probably you can re/create one by including -f at the end of your command

Upvotes: 3

achoukah
achoukah

Reputation: 1445

Have you run npm init? That command runs you through everything...

Upvotes: 9

Related Questions