사용자 지정 메타 데이터 또는 구성을 package.json에 추가합니다. 유효합니까?
밑줄로 시작하는 사용자 지정 키가있는 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
. - 키 이름 선택 :
- 아직 정의되지 않음 (아래 세부 정보)
- 향후 사용을 위해 예약되지 않음 (아래 세부 정보 참조)
- 피하기 접두사
_
와$
- 맞춤 항목 을 중첩 할 단일 최상위 키 를 사용하는 것이 좋습니다 .
예를 들어 domain을 소유하고 있다면 다음과 같이 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" }
If this was in a folder at ./some-library, then require('./some-library') would attempt to load ./some-library/lib/some-library.js.
This is the extent of Node's awareness of package.json files.
To avoid possible conflicts you should prefixing your keys with some character or word. An underscore is a common variant.
'Development Tip' 카테고리의 다른 글
g ++ 컴파일 시간을 단축하는 방법 (많은 템플릿을 사용할 때) (0) | 2020.11.24 |
---|---|
공개적으로는 읽기 전용이지만 전용 setter가있는 Objective-C 속성 (0) | 2020.11.24 |
SQL 레코드가 존재하지 않는 경우에만 테이블에 삽입 (0) | 2020.11.24 |
Kotlin의 정적 초기화 블록 (0) | 2020.11.24 |
.NET Core- "dotnet new sln"을 사용하는 경우 (0) | 2020.11.24 |