NPM이 Heroku와 함께 실패하면 해결 방법(npm ERR! 시작 스크립트에서 실패).
중요한
지루한 이야기
오랫동안 내 인생을 지옥으로 만든 이상한 문제입니다. NPM은 종속성을 설치하지 않습니다. 어떤 이유로 나는 간단하고 작동하는 Heroku를 좋아합니다. 그러나 Express와 함께 Nuxt를 사용하고 앱을 Heroku에 배포하기 시작했을 때 이 문제가 발생하기 시작했습니다. 하루 종일 내가 이런 일이 일어나게 하기 위해 무엇을 했는지 알아내려고 할 때마다 나는 아무것도 하지 않았다. 정상적인 배포입니다. 그런 다음 새 프로젝트를 만들고 이전 프로젝트의 모든 논리를 새 프로젝트로 복사하고 동일한 패키지를 설치합니다. 때로는 잘 작동하지 않아서 Heroku에서 새 앱을 만들고 작동할 때까지 같은 작업을 반복합니다. Vercel 또는 Portal Azure와 같은 다른 솔루션을 사용하는 경우도 있지만 무슨 뜻인지 알면 집처럼 느껴지지 않습니다. 그런데 오늘 드디어 이 문제를 해결할 방법을 찾았습니다.
왜 이런 일이 발생합니까?
왜 이런 일이 발생하는지 정확히 모르겠습니다. 그러나 Heroku Node.js support을 읽은 후 Heroku가 종속성을 설치하기 위해 실행되지 않는다는 것을 알게 되었습니다
npm i
. 대신 실행됩니다npm ci
.둘의 차이점을 알고 싶다면 찾을 수 있습니다here. 그러나 간단히 말해서
npm install
와 npm ci
를 사용하는 것의 주요 차이점은 다음과 같습니다.그래서 Heroku를 사용하도록 구성
npm i
하고 앱을 배포할 때마다 모든 것을 다시 설치하도록 캐시를 비활성화했습니다.해결책
먼저 내 Node 및 NPM 버전을 지정했습니다
package.json
. 해당 명령을 사용하여 정확한 버전을 알 수 있습니다.노드:
node -v
NPM의 경우:
npm -v
그런 다음 다음과 같이
package.json
에 둘 다 추가하십시오."engines": {
"npm": <Your npm version>,
"node": <Your node version>
}
앞에서 말했듯이
npm i
대신 npm ci
를 사용하고 Heroku 캐시를 비활성화하도록 Heroku를 구성해야 합니다. 두 가지 방법으로 이를 수행할 수 있습니다.첫 번째로 Heroku CLI을 사용할 수 있습니다.
1- Heroku 계정으로 로그인했는지 확인하십시오.
heroku login
2- 이 명령을 사용하여 트릭을 수행하십시오.
$ heroku config:set USE_NPM_INSTALL=true -a <Your app name>
$ heroku config:set NODE_MODULES_CACHE=false -a <Your app name>
두 번째 방법은 Heroku 자체에서 수행하는 것입니다.
1- Heroku 및 설정 탭에서 앱으로 이동합니다.
2- '구성 변수 표시' 버튼으로 스크롤
그런 다음 추가
인덱스
열쇠
값
1
NODE_MODULES_CACHE
거짓
2
USE_NPM_설치
진실
당신은 이런 식으로 끝나야합니다
다른 환경 변수를 추가하는 것을 잊지 마세요 :)
나는 이것이 고통을 끝내기를 바랍니다.
Reference
이 문제에 관하여(NPM이 Heroku와 함께 실패하면 해결 방법(npm ERR! 시작 스크립트에서 실패).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mohammedayman2018/when-npm-miss-with-heroku-how-to-solve-npm-err-failed-at-the-module-start-script-9nh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)