NPM 스크립트에서 명령줄 인수 처리
5468 단어 javascriptshowdevwebdevnode
사용자 정의 인수
애플리케이션을 린트하는 NPM 스크립트가 있다고 가정해 보겠습니다. 그와 같은 것 :
"scripts": {
"lint": "eslint './src/**/*.{js,ts,tsx}'"
}
그런 다음 자동 모드에서 lint --fix를 추가하기로 결정합니다. lint가 자동으로 오류를 수정해 주기를 원하는 경우가 있기 때문입니다. 그런 다음 다른 스크립트를 추가합니다.
"scripts": {
"lint": "eslint './src/**/*.{js,ts,tsx}'",
"lint:fix": "eslint './src/**/*.{js,ts,tsx}' --quiet --fix"
}
귀하의
lint:fix
는 기본적으로 두 개의 새로운 매개변수가 있는 lint
스크립트입니다. 따라서 반복하지 않고 params를 lint
명령에 직접 전달하도록 다시 작성할 수 있습니다."scripts": {
"lint": "eslint './src/**/*.{js,ts,tsx}'",
"lint:fix": "npm run lint -- --quiet --fix"
}
이 접근 방식은 더 간결하고 확장 가능합니다.
lint
명령을 변경하면 모든 변형이 수정 사항을 상속합니다. 읽기도 쉽고 이해도 빠릅니다.--
표기법은 NPM에서 호출한 현재 명령에 매개변수를 전달하도록 스크립트에 지시합니다. NPM 문서에서: "NPM은 --
뒤의 모든 인수를 스크립트에 직접 전달합니다."이 기능은 NPM >=2.0.0에서 사용할 수 있습니다. | See the Docs . 모든 명령에 매개변수를 전달할 수 있습니다.명명된 매개변수
NPM 문서에서: "npm_config_로 시작하는 모든 환경 변수는 구성 매개변수 | See the Docs로 해석됩니다. 즉,
npm_config_
변수를 사용하여 명명된 매개변수를 NPM 스크립트 실행에 전달할 수 있습니다.NODE_ENV를 기반으로 하는
serve
, development
, staging
및 test
의 4가지 모드로 애플리케이션을 제공할 수 있는 production
스크립트가 있다고 가정해 보겠습니다. 따라서 다음과 같은 NPM 스크립트를 사용할 수 있습니다."scripts": {
"serve": "nodemon index.js",
"serve:dev": "NODE_ENV=development npm run serve",
"serve:staging": "NODE_ENV=staging npm run serve",
"serve:test": "NODE_ENV=test npm run serve",
"serve:prod": "NODE_ENV=production npm run serve"
}
멋진 임무 완수:
stage
기반으로 애플리케이션을 제공할 수 있으며 이는 매우 유용합니다. 그러나 이 코드를 리팩토링하여 하나의 스크립트만 사용하고 다음과 같은 npm_config_
변수를 사용하여 스테이지를 인수로 전달할 수 있습니다."scripts": {
"serve": "NODE_ENV=$npm_config_stage nodemon index.js"
}
이제 다음과 같이 스크립트를 호출할 때 NODE_ENV를 수정하기 위해
stage
매개변수($npm_config_stage)를 전달할 수 있습니다.npm run serve --stage=development
stage
와 같이 npm run serve stage=whatever
매개변수에 모든 값을 전달할 수 있습니다.또한
myvar
와 같은 다른 이름을 원할 수도 있습니다. 따라서 npm run serve --myvar=whatever
를 호출하고 npm_config_
var는 $npm_config_myvar
가 됩니다.결론
사용자 정의 매개변수와 명명된 변수를 사용하면 NPM 스크립트를 더 작고 이해하기 쉽고 유지 관리할 수 있습니다. 그게 전부입니다 :)
표지 이미지 by Luca Bravo @ Unsplash
Reference
이 문제에 관하여(NPM 스크립트에서 명령줄 인수 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/felipperegazio/handling-command-line-arguments-in-npm-scripts-2ean텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)