[node.js] npm install과 npm run build의 차이점은 무엇입니까?

npm install과 의 차이점은 무엇입니까 npm run build?

나는 내 프로젝트에서 때때로 npm npm install이 수행 될 때 실패하기 시작 하지만 실행 npm run build하면 잘 작동 한다는 것을 알았습니다 .

어떻게 즉이 두 가지 목표의 내부 작업을 수행 install하고 run build차이?



답변

npm installnode_modules/작업중인 노드 프로젝트에 대한 종속성을 디렉터리에 설치합니다 . install다른 node.js 프로젝트 (모듈)를 호출 하여 프로젝트에 대한 종속성으로 설치할 수 있습니다.

npm run build은의 별칭이며 npm build“build”가 package.json 파일에서 수행하는 작업을 지정하지 않는 한 아무 작업도 수행하지 않습니다. 다른 프로젝트에서 사용하기 전에 프로젝트에 필요한 구축 / 준비 작업을 수행 할 수 있습니다.

buildbuild대한 문서에 따르면 linkinstall명령에 의해 호출됩니다 .

이것은 npm 링크 및 npm 설치에 의해 호출되는 배관 명령입니다.


답변

2019 년 NPM

npm build더 이상 존재하지 않다. npm run build지금 전화해야합니다 . 아래에 자세한 정보가 있습니다.

TLDR;

npm install: 종속성을 설치 한 다음 필드 install에서 를 호출합니다 package.json scripts.

npm run build: 필드에서 빌드 필드를 실행합니다 package.json scripts.


NPM 스크립트 필드

https://docs.npmjs.com/misc/scripts

npm package.json스크립트 필드에 입력 할 수있는 항목이 많이 있습니다 . 스크립트의 수명주기 위에있는 위의 문서 링크를 확인하세요. 대부분은 설치, 게시, 제거, 테스트, 시작, 중지, 수축 포장, 버전 전후에 스크립트를 실행할 수있는 사전 및 사후 후크를 가지고 있습니다.


복잡한 일

  • npm install 다음과 같지 않다 npm run install
  • npm installpackage.json종속성을 설치 한 다음package.json scripts.install
    • (필수적으로 npm run install종속성이 설치된 후 호출합니다 .
  • npm run install단지를 실행 package.json scripts.install, 그것은 종속성을 설치하지 않습니다 .
  • npm build이전에는 유효한 명령 npm run build이었지만 ( 과 동일하게 사용됨 ) 더 이상 그렇지 않습니다. 이제 내부 명령입니다. 실행하면 얻을 npm WARN build npm build called with no arguments. Did you mean to npm run-script build?수 있습니다 : https://docs.npmjs.com/cli/build 문서에서 자세한 내용을 읽을 수 있습니다.

답변

주요 차이점은 ::

npm install 은 미리 정의 된 작업을 수행하는 npm cli-command입니다. 즉, Churro가 작성한대로 package.json 내부에 지정된 종속성을 설치합니다.

npm run command-name 또는 npm run-script command-name ( 예 : npm run build )은 또한 “command-name”대신 지정된 이름으로 사용자 지정 스크립트를 실행하도록 미리 정의 된 cli-command입니다. 따라서이 경우 npm run build 는 이름이 “build”인 사용자 지정 스크립트 명령이며 그 안에 지정된 모든 작업을 수행합니다 ( 예 : 아래 예제 package.json에 제공된 echo ‘hello world’ ).

주목할 점 ::

1) 한 가지 더, npm build그리고 npm run build다른 두 가지가있다 npm build등의 추로에 의해 작성 할 것이다, 그러나 npm run build사용자 정의 작업 작성된 내부를 할 것입니다package.json

2) npm build과는 npm run build동일하지 않습니다. 내가 의미하는 바는 사용자 지정 빌드 ( npm run build) 스크립트 내부에 어떤 것을 지정할 수 없으며 npm build동일한 작업을 기대할 수 없다는 것 입니다. 확인하려면 다음을 시도하십시오 package.json.

{
  "name": "demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build":"echo 'hello build'"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {},
  "dependencies": {}
}

실행 npm run build하고 npm build하나 하나 당신은 차이를 볼 수 있습니다. 명령에 대한 자세한 내용은 npm 문서를 따르십시오 .

건배!!


답변

  • npm install package.json 구성에 종속성을 설치합니다.
  • npm run build “build”스크립트를 실행하고 애플리케이션을 실행하는 스크립트를 생성했습니다. server.js라고 가정 해 보겠습니다.
  • npm start “노드 server.js”가 될 “시작”스크립트를 실행합니다.

문제가 무엇인지 정확히 말하기는 어렵지만 기본적으로 스크립트 구성을 보면 “빌드”는 일종의 빌드 도구를 사용하여 응용 프로그램을 만드는 반면 “시작”은 빌드가 완료되었다고 가정하고 파일이 없습니다.

아마도 bower 또는 grunt를 사용하고 계실 것입니다. 일반적인 grunt 응용 프로그램은 마지막 빌드를 삭제하는 “clean”스크립트와 함께 해당 스크립트를 정의한 것을 기억하는 것 같습니다.

빌드 도구는 시작 스크립트가 호출하는 bin /, dist / 또는 build / 폴더에 파일을 만드는 경향이 있습니다 (예 : “node build / server.js”). 당신이 때 npm start실패하면 호출하기 때문에, 그것은 아마도 npm clean또는 응용 프로그램 파일이 실패하기 시작 NPM 원인이 존재하지 않도록 최신 빌드를 삭제 유사합니다.

npm 빌드의 소스 코드-이 질문에 대한 논의를 다루기 위해-원하는 경우 살펴볼 수 있도록 github에 있습니다. npm build직접 실행 하고 “빌드”스크립트를 정의한 경우 .NET과 npm run-script build동일하지 않으므로 빌드 스크립트를 호출하라는 오류와 함께 종료 됩니다 npm run script.

나는 무엇을하는지 잘 모르겠지만 npm build그것은 postinstall 및 의존성에서 스크립트 패키징과 관련된 것 같습니다. 이것은 패키지를 다운로드 한 후 종속성에 필요한 모든 CLI 빌드 스크립트 또는 기본 라이브러리가 특정 환경에 대해 빌드되었는지 확인하는 것이라고 가정합니다. 이것이 링크 및 설치가이 스크립트를 호출하는 이유입니다.


답변