npm WARN package.json : 저장소 필드 없음


808

다음 명령으로 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

29
비공개 repos를 "private": true
원하시면

답변:


1279

NPM v1.2.20부터 확인한 것이므로 경고로보고합니다.

그러나 걱정하지 마십시오. 아직 필드 가없는 sooooooo 많은 패키지가 있습니다 . 이 필드는 정보 목적으로 사용됩니다.repositorypackage.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로 설정된 경우 오류를 인쇄 합니다.
Blaise

9
@Blaise, NPM 3.3.3에서private: true
gustavohenke

3
질문, 왜 "비공개"가 기본값이 아닌가? 나는 npm 프로젝트가 몇 개나 실제로 게시되었는지 몇 개입니까? 사용자 코드보다 실제로 더 많은 라이브러리 코드가 있습니까?
Felype

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
}

이 답변에 대해 다른 사용자에게 알림을 받았습니다. docs.npmjs.com/files/package.jsonrepository.private 에 따르면 문서화 된 동작이 아닌 것으로 보이 거나 더 이상 허용되지 않는 것 같습니다 .
gustavohenke

1
@gustavohenke : 감사합니다. 당신이 옳은 것 같습니다. private최상위 속성이 더 나은 옵션입니다. 내 답변을 업데이트했습니다.
wortwart

46

자신의 정보를 얻는 경우 필드를 package.json추가하십시오 repository. (실제 저장소에 대한 링크 사용) :

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

전체 github 프로젝트 파일 링크 ( http://또는 https://!를 포함 함)를 명확히 해주셔서 감사합니다 .
twknab

9

당신은 실행 했습니까 npm init? 그 명령은 모든 것을 통해 당신을 실행합니다 ...


9

프로젝트의 Simple 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": truepackage.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
나는 '
MJ

3

예, 아마도 -f명령 끝에 포함 시켜 다시 만들거나 만들 수 있습니다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.