package.json에서 'files'및 'directories'속성을 어떻게 사용합니까?
package.json
에 files
소품 및 / 또는 소품 이있는 경우 directories
:
"files": [
"./src/assets/fonts/"
],
"directories": {
"assets:": "./src/assets"
}
그것들을 사용하는 몇 가지 방법은 무엇입니까? 문서는 일단 지정되면 수행 할 수있는 작업을 언급하지 않습니다.
예를 들어 파일 문서 는 다음과 같이 말합니다.
"파일"필드는 프로젝트에 포함 할 파일의 배열입니다. 어레이의 폴더 이름을 지정하면 해당 폴더 내의 파일도 포함됩니다.
"프로젝트에 포함"이란 무엇을 의미합니까? 어디에 포함 하시겠습니까? 이전에 없었던 지금은 어떻게 접근 할 수 있습니까?
에서 디렉토리 섹션 , 워드 프로세서 말 :
앞으로이 정보는 다른 창의적인 방법 으로 사용될 수 있습니다 .
기존의 창의적인 사용 방식은 무엇입니까?
"프로젝트에 포함"은를 실행할 때 생성되는 패키지 tarball에 파일이 있음을 의미합니다 npm publish
. npm pack
실제로 게시를 트리거하지 않고 검사를 위해 tarball을 생성하도록 실행할 수도 있습니다 . 이렇게하면 생성 된 tarball을 실제로 열고 어떤 파일이 포함되었거나 포함되지 않았는지 검사 할 수 있습니다.
무시할 파일의 블랙리스트로 작동 하는 동안 .npmignore
(또는 .gitignore
프록시로 작동하지 않는 경우 .npmignore
) (기본적으로 다른 모든 항목을 포함) files
어레이는 화이트리스트입니다. 즉, 기본적으로 모든 것을 포함하는 대신 files
array가 지정 되면 모든 것이 기본적으로 제외되고 명시 적으로 나열된 파일 만 패키지 된 tarball에 포함됩니다.
예를 들어 패키지가 브라우저에서 사용하기위한 라이브러리라고 가정합니다. 코드는에 lib/
있으며 browserify를 실행하여에서 브라우저 호환 lib로 컴파일 dist/index.js
합니다. 존재하지 않는 .gitignore
사실로 사용되는에 나열된 여러 파일로 시작 .npmignore
합니다. 그러나 이제 dist/
생성 된 파일로 가득 차 있으므로 git repo에서 무시하기를 원합니다. 에 추가 .gitignore
하면 git repo에서 제외 되지만 tarball 패키지에서도 무시됩니다 . 당신은 두 가지 옵션이 있습니다 그래서 : 당신의 중복 .gitignore
으로 .npmignore
만 목록 dist/
에를 .gitignore
. 이렇게하면 두 개의 파일을 거의 동기화 상태로 유지해야합니다. 이 방법은 tedius이며 오류가 발생하기 쉽습니다.
다른 대안은를 사용하지 .npmignore
않고 대신 패키지의 files
배열 에서 실제로 원하는 파일을 나열하는 것 입니다. README.*
, package.json
, CHANGELOG.*
(아마도 몇 사람이)에 관계없이 자동으로 TAR 파일에 포함되어 있습니다. 따라서 간단히 추가 "files": [ "dist" ]
하면 완료됩니다. 이제 패키지 타르볼는에서 원본 소스 JS 포함되지 않습니다 lib
,도 tests/
등 대신 단지의 실제 컴파일 된 lib 디렉토리가 포함됩니다 dist/
.
에 관해서는 directories
일반적으로 lib
(es5의 경우), src
(es6, coffeescript, typescript 등 소스의 경우), dist
(브라우저 또는 vm 특정 빌드의 경우) test
,, output
(범위 보고서 등과 같은 임시 생성 파일의 경우 ) 등을 나열 합니다 doc
. 이 속성은 npm 또는 다른 도구에서 직접 사용되지 않으며 디렉터리 구조를 명시 적으로 만듭니다. 또한 다음과 같이 npm 스크립트에서 디렉토리를 참조 할 수 있습니다.
"scripts": {
"clean": "rm -rf $npm_package_directories_dist $npm_package_directories_output",
"lint": "eslint $npm_package_directories_src",
"test": "teenytest $npm_package_directories_test",
}
이런 식으로 디렉토리는 한 번만 지정되며 변경 될 경우 단일 위치에서만 변경하면됩니다 (package.json 전체에서 여러 개가 아닌).
'programing' 카테고리의 다른 글
Random Forests의 out of bag 오류는 무엇입니까? (0) | 2021.01.09 |
---|---|
LINUX C에서 stdout과 STDOUT_FILENO의 차이점 (0) | 2021.01.08 |
JNI 코드에서 예외를 발생시키는 가장 좋은 방법은 무엇입니까? (0) | 2021.01.08 |
공용 속성 및 개인 필드를 사용해야합니까 아니면 데이터에 공용 필드를 사용해야합니까? (0) | 2021.01.08 |
return 문이 없을 때 javascript 함수는 무엇을 반환합니까? (0) | 2021.01.08 |