어떻게 npm 를 구축 도구 로 사용 합 니까?
npm
의 scripts
명령 은 다른 구축 도구 에 사용 되 는 모든 일 을 할 수 있 고 더욱 간단명료 하고 우아 하 며 가방 의존 도가 적 고 유지 비용 이 적다.npm Script
우선, 나 는
npm
우리 의 구축 스 크 립 트 를 어떻게 관리 하 는 지 말 해 야 한다.npm
의 구축 스 크 립 트 는 npm run-script
이 명령 npm run
이 약자 임 을 알 고 있 습 니 다. npm run
의 첫 번 째 매개 변 수 는 scripts
대상 의 속성 과 연 결 됩 니 다. 이 속성의 값 을 하나의 명령 으로 운영 체제 의 기본 shell
에서 실 행 됩 니 다.예 를 들 어 아래 의 이것 package.json
:{
"name": "myproject",
"devDependencies": {
"jshint": "latest",
"browserify": "latest",
"mocha": "latest"
},
"scripts": {
"lint": "jshint **.js",
"test": "mocha test/"
}
}
실행
npm run lint
하면 npm
하나 shell
를 켜 고 실행 jshint **.js
하 며, 실행 npm run test
하면 npm
하나 shell
를 켜 고 실행 mocha test/
한다.이 shell
환경 은 node_modules/.bin
폴 더 를 PATH
에 추가 했다. 이것 은 당신 이 설치 한 모든 의존 이 직접 실 행 될 수 있다 는 것 을 의미한다. 다시 말 하면 ./node_modules/.bin/jshint **.js
나 $(npm bin)/jshint **.js
처럼 경 로 를 지정 할 필요 가 없다.만약 당신 이 실행
npm run
할 때 어떠한 인자 도 쓰 지 않 았 다 면 npm
은 이미 있 는 모든 명령 을 열거 할 것 입 니 다. 예 를 들 어:Available scripts in the user-service package:
lint
jshint **.js
test
mocha test/
Shortcut script
편리 하 게 사용 하기 위해
npm
도 명령 의 빠 른 사용 방식 을 제공 했다.예 를 들 어 npm test
, npm start
, npm stop
명령 등 은 절약 할 수 있다 run
.Pre and Post Hooks
다른 멋 진 특성 은 어떤
npm
의 script
도 여러 개 pre-
와 post-
갈 고 리 를 설치 할 수 있다 는 것 이다.예 를 들 어 npm run lint
임 무 를 수행 하면 npm
임무 가 무엇 인지 미리 모 르 지만 lint
즉시 실행 npm run prelint
한 다음 에 npm run lint
을 집행 하고 마지막 에 npm run postlint
을 집행 한다.pre
와 post
script 도 exit-code-sensitive
입 니 다. 이 는 pretest
script 이 0 이 아 닌 종료 코드 로 종료 되면 NPM
즉시 중단 되 고 재 test
와 posttest
scripts 를 실행 하지 않 는 다 는 뜻 입 니 다.이미
pre-
인 script 에 하나 pre-
를 추가 하지 않 으 면 prepretest
무시 된다.npm
에서 내부 명령 pre-
과 post-
을 사용 할 수 있 습 니 다. 예 를 들 어 install
, uninstall
, publish
와 update
등 입 니 다.내부 명령 의 행 위 를 덮어 쓸 수 는 없 지만 pre-
과 post-
를 통 해 그들의 행동 에 영향 을 줄 수 있다.이것 은 당신 이 이렇게 멋 진 일 을 할 수 있다 는 것 을 의미한다."scripts": {
"lint": "jshint **.js",
"build": "browserify index.js > myproject.min.js",
"test": "mocha test/",
"prepublish": "npm run build # also runs npm run prebuild",
"prebuild": "npm run test # also runs npm run pretest",
"pretest": "npm run lint"
}
Passing Arguments
npm
에서 또 다른 멋 진 특징 은 전달 매개 변수 집합 이다.다음 과 같다."scripts": {
"test": "mocha test/",
"test:xunit": "npm run test -- --reporter xunit"
}
이 배합 을 통 해 우 리 는 간단하게 실행 할 수 있 습 니 다
npm run test
. 그것 은 실 행 될 것 입 니 다 mocha test/
. 그러나 우 리 는 --
전 중단 을 통 해 그 인 자 를 확장 할 수 있 습 니 다.예 를 들 어
npm run test --anothertest.js
는 mocha test/ anothertest.js
을 실행 하거나 더 유용 한 것 은 npm run test -- --grep parser
을 mocha test/ --grep parser
로 해석 합 니 다.NPM Config Variables
마지막 으로 우리 가 주의해 야 할 것 은
npm
의 package.json
중 하나 config
명령 이 있어 서 임의의 일련의 값 을 scripts
의 환경 변수 로 포장 할 수 있다 는 것 이다.예 를 들 면: "name": "fooproject",
"config": {
"reporter": "xunit"
},
"scripts": {
"test": "mocha test/ --reporter $npm_package_config_reporter",
"test:dev": "npm run test --fooproject:reporter=spec"
}
여기,
config
중 하나 reporter
속성 이 있 는데, 그 값 은 xunit
이다.여기 있 는 모든 config
의 속성 이 환경 변수 에 노출 되 었 습 니 다. npm_package_config_
을 추가 하기 전에 중단 하고 방문 할 수 있 습 니 다.위의 예 에서
npm run test
명령 은 $npm_package_config_reporter
변 수 를 사용 하여 config
중의 reporter
값 을 가 져 옵 니 다.여러 작업 실행
Grunt
와 Culp
같은 구축 도 구 는 여러 임 무 를 하나의 임무 로 통합 하 는 능력 을 가지 고 있다.그리고 npm
을 사용 할 때 당신 은 두 가지 방식 으로 선택 할 수 있 습 니 다. 이것 은 어떤 의미 가 당신 이 장면 을 사용 하 는 지 에 달 려 있 습 니 다.만약 당신 의 임무 가 선 결 조건 (예 를 들 어 js 를 최소 화하 기 전에 우 리 는 모든 js 코드 를 하나의 파일 로 유도 해 야 한다) 이 라면 pre-
과 post-
갈 고 리 를 사용 하 는 것 이 더 좋 은 선택 이 될 것 입 니 다.또한 아래 와 같이 bash &&
연산 자 를 사용 할 수 있 습 니 다. "scripts": {
"build": "npm run build:css && npm run build:js"
}
이 예 를 살 펴 보 자.
우리 의 package. json 의
scripts
코드 는 다음 과 같다. "scripts": {
"jslint": "node jslint.js",
"csslint": "node csslint.js",
"build:css": "node build-css.js",
"build:js": "node build-js.js",
"build": "npm run build:css && npm run build:js",
"prebuild:js": "npm run jslint",
"prebuild:css": "npm run csslint"
}
다음은 몇 개의 파일 입 니 다. 실행 할 때 정 보 를 출력 하기 위해 서 입 니 다. 코드 는 다음 과 같 습 니 다.
jslint.js
console.log("jslint task running...");
csslint.js
console.log("csslint task running...");
build-css.js
console.log("build:css task running...");
build-js.js
console.log("build:js task running...");
우리 가
npm run build
을 실행 할 때 프로그램의 실행 순 서 는 다음 과 같다.> npm run build:css && npm run build:js
> npm run csslint
> node csslint.js
csslint task running...
> node build-css.js
build:css task running...
> npm run jslint
> node jslint.js
jslint task running...
> node build-js.js
build:js task running...
여러 작업 의 흐름 호출
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.