`npm build`는 package.json에서“build”라는 스크립트를 실행하지 않습니다.


138

새 모듈의 경우 npm buildgulp / Grunt / 기타 특수 빌드 도구없이 사용하려고 합니다.

"scripts": {
  "build": "node build.js"
},

내 build.js는 단순히

console.log('Hello')

그러나 달리기

npm build

상태가 0 인 상태로 아무 것도 인쇄하지 않고 종료합니다.

달리는:

npm install

또한 모든 정상적인 작업을 수행하지만 build.js도 실행하지 않습니다.

npm에서 빌드 스크립트를 실행하려면 어떻게해야합니까?

편집 : 간단한 bash 명령조차도 작동하지 않는 것 같습니다.

"scripts": {
    "build": "touch TESTFILE"
},

그 이름으로 파일을 만들지 않습니다.


해결 방법 : install대신 사용하십시오.
Zaz

이것은 기본적으로 NPM의 거대하고 직관적이지 않은 성가심이며, 계속 Yarn을 사용하는 이유 중 하나입니다. 얀을 사용하면 파라메터처럼 커스텀 스크립트를 실행할 수 있습니다. 즉 얀 스토리 북이 스토리 북 스크립트를 실행합니다. NPM에서는 npm run storybook을 수행해야하며 그 위에 npm을 통해 매개 변수를 전달하려면 그 전에-실 이야기 책 --ci와 npm run storybook---ci를 비교할 때 필요합니다. 그것은 나에게 쉬운 일이 아닙니다.
Emobe

답변:


243

불행히도 docs에서 설명한대로 npm build이미 내부 명령입니다 .

이것은 npm link 및 npm install에 의해 호출되는 배관 명령입니다. 일반적으로 직접 호출해서는 안됩니다.

해당 명령이 이미 있기 때문에 항상 "build": "node build.js".

자체 스크립트를 실행하는 정규화 된 방법은 with run-script또는 its alias입니다run .

$ npm run build

npm start다른 방법은 짧은 방법이지만 기존 npm 명령이 그림자처럼 그림자를 표시하지 않는 경우에만 옵션 npm build입니다.


후손을 위해 (다른 사람들이 언급했듯이) npm buildnpm은 node-gyp 사용하여 네이티브 C / C ++ 노드 애드온을 빌드하는 데 사용됩니다 . 일반적으로 자동으로 발생하기 때문에 잘 문서화되어 있지 않지만 관심이 있다면 소스 코드는 여기에 있습니다 .


15
그래서를 않습니다 npm build 합니까? 내가 볼 수있는 한, 모든 파일이 완전히 바뀌지 않은 채로
남아있다

2
일부 패키지에는 빌드 프로세스가 필요합니다. npm installnpm을 실행 중일 때 npm은 C / C ++ 바인딩이 있거나 일반적으로 sth 인 node-gyp가 필요한 패키지를 찾으면 시작 npm build합니다. 단순히 npm build단독으로 실행하여 해당 패키지를 다시 빌드 할 수 있습니다 .
Jakub Miziołek

4
내부 명령에 이름을 바꿀 수 있어야 _build하고 npm build바로 가기 등이 될 shuould npm startnpm test
파블

1
나는 이해 npm build내 스크립트를 호출하고,이 패키지의 컴파일 된 구성 요소를 구축하는 데 사용하는 것이되지 않습니다. 나는 아직도 그 일을 어떻게하는지 확실하지 않습니다. 어떤 파일을 찾습니까?
aaaidan

1
내가 직접 패키지를 작성한다면, npm build의미 를 채우기 위해 무엇을해야하는지 알면 좋을 것입니다 ...
Frank Nocke

20

"build"라는 스크립트 package.json는 특별한 것이 아닙니다. 그것을 실행하는 유일한 방법은 다음을 호출하는 것입니다.

npm run-script build

npm의해 자동으로 호출되는 이름이 있지만 "build"는 그 중 하나가 아닙니다. 전체 목록은 다음과 같습니다.

  • prepublish, publish,postpublish
  • preinstall, install,postinstall
  • preuninstall, uninstall,postuninstall
  • preversion, version,postversion
  • pretest, test,posttest
  • prestop, stop,poststop
  • prestart, start,poststart
  • prerestart, restart,postrestart
  • preCUSTOM그리고 postCUSTOM커스텀 스크립트 이름.


3

npm run build아무 것도 인쇄하지 않는 데 문제가있었습니다 . 사용 결국 npm run build --verbose내가 필요한 출력을 얻을 수 있습니다.


2

Npm 빌드 예상

루트에 package.json 파일을 포함하는 폴더

전형적인 npm start와 같이 package.json에서 npm 스크립트 를 사용해보십시오.


이것이 의미하는 바 npm build .는 작동한다는 것이며, 제 경우 npm은 "package.json"에서 "build"스크립트를 실행합니다.
에흥
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.