밑줄로 시작하는 사용자 정의 키가있는 package.json 파일을 보았습니다 (어디를 기억하지 못함).
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.4.7"
, "jade": ">= 0.0.1"
}
, "_random": true
}
당신은 이것을 할 수 있습니까? 여전히 유효합니까? 이것이 허용되는 경우 규칙에 대한 문서가 있습니까?
감사!
답변
tl; dr :
- 예, 에 맞춤 항목을 추가 할 수 있습니다
package.json
. - 키 이름 선택 :
- 아직 정의되지 않음 (아래 세부 정보)
- 향후 사용을 위해 예약되지 않음 (자세한 내용은 아래 참조)
- 피하기 접두사
_
와$
- 맞춤 항목 을 중첩 할 단일 최상위 키 를 사용하는 것이 좋습니다 .
당신이 자신의 도메인 경우 예는 example.org
, 사용자 정의 저장할 수 random
, 다음과 같이 키를 역 도메인 이름 표기법 최상위 키 내부로 _
대체 .
, 해당되는 경우, 그리고 -
(주석 참조) (예 org_example
) :
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.4.7"
, "jade": ">= 0.0.1"
}
, "org_example": {
"random": true
}
}
npm
의 package.json
파일 형식은 대부분 CommonJS 패키지 사양을 따릅니다. .
npm
현재 사용 하는 키 : https://docs.npmjs.com/files/package.json- 사양에 정의 된 키 : http://wiki.commonjs.org/wiki/Packages/1.1
에 관해서는 사용자 정의 키를 선택 하십시오 CommonJS 패키지 사양에 다음과 같이 명시되어 있습니다 (강조 표시).
다음 필드가 있습니다 예약 에 대한 미래의 확장 :
build
,default
,external
,files
,imports
,maintainer
,paths
,platform
,require
,summary
,test
,using
,downloads
,uid
.패키지 설명자 사양에 대한 확장은 일반 패키지 관리와 관련된 의미가없는 무해한 이름으로 해당 속성의 이름 간격을 지정하여 향후 표준 이름에 대한 충돌을 방지하기 위해 노력해야합니다 .
다음 필드는 패키지 레지스트리 가 재량에 따라 사용할 수 있도록 예약 되어 있습니다.
id
,type
. 또는 로 시작하는_
$
모든 속성 은 패키지 레지스트리가 재량에 따라 사용할 수 있도록 예약 되어 있습니다.
답변
JSON의 특성과 Nodejitsu 문서 의이 진술을 감안할 때 나는 그것에 대해 잘못된 것이 없다고 생각합니다.
NPM 자체는 package.json 의 두 필드 만 인식 합니다.
{ "name" : "barebones", "version" : "0.0.0", }
NPM은 여기에 나열된 몇 가지 필드도 고려 합니다 . 유효한 JSON이고 Node.js 또는 NPM을 방해하지 않는 한 모든 것이 정상적이고 유효해야합니다.
package.json 파일에 대한 Node의 인식은 메인 필드로 확장되는 것 같습니다 . Ref.
{ "name" : "some-library", "main" : "./lib/some-library.js" }
이것이 ./some-library의 폴더에 있으면 require ( ‘./ some-library’)가 ./some-library/lib/some-library.js를로드하려고 시도합니다.
이것은 node의 package.json 파일 인식 범위입니다.
충돌 가능성을 방지하려면 일부 문자 또는 단어를 키 앞에 붙여야합니다. 밑줄은 일반적인 변형입니다.