2017-12-13 7 views
0

내 heroku 빌드가 실패합니다. 나는 Heroku에서 Angular 4 응용 프로그램을 만들려고 노력하고 있지만 그것은 나를 허용하지 않을 것입니다. package.json 종속성이 누락 된 느낌이 들지만 확실하지 않습니다. 나는 그것이 실패하지만 난 정말이 일을하려는 이유 모르는왜 Heroku 빌드가 실패합니까?

-----> Node.js app detected 
-----> Creating runtime environment 

     NPM_CONFIG_LOGLEVEL=error 
     NPM_CONFIG_PRODUCTION=true 
     NODE_VERBOSE=false 
     NODE_ENV=production 
     NODE_MODULES_CACHE=true 
-----> Installing binaries 
     engines.node (package.json): unspecified 
     engines.npm (package.json): unspecified (use default) 

     Resolving node version 8.x... 
     Downloading and installing node 8.9.3... 
     Using default npm version: 5.5.1 
-----> Restoring cache 
     Skipping cache restore (not-found) 
-----> Building dependencies 
     Installing node modules (package.json + package-lock) 

     > [email protected] preinstall /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add 
     > npm install -g http-server 

     /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add/.heroku/node/bin/http-server -> /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add/.heroku/node/lib/node_modules/http-server/bin/http-server 
     /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add/.heroku/node/bin/hs -> /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add/.heroku/node/lib/node_modules/http-server/bin/http-server 
     + [email protected] 
     added 23 packages in 1.212s 

     > [email protected] preinstall /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add/node_modules/node 
     > node installArchSpecificPackage 

     + [email protected] 
     added 1 package in 1.676s 

     > [email protected] postinstall /tmp/build_245bb93639fea477473780ef82795ada/mgomper-SPA-Front-End-d028559f87c3e58d7bd2c6da70d4ffb0e3e44add 
     > ng build --prod 

     sh: 1: ng: not found 
     npm ERR! file sh 
     npm ERR! code ELIFECYCLE 
     npm ERR! errno ENOENT 
     npm ERR! syscall spawn 
     npm ERR! [email protected] postinstall: `ng build --prod` 
     npm ERR! spawn ENOENT 
     npm ERR! 
     npm ERR! Failed at the [email protected] postinstall script. 
     npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 

     npm ERR! A complete log of this run can be found in: 
     npm ERR!  /app/.npm/_logs/2017-12-13T01_22_28_985Z-debug.log 
-----> Build failed 

     We're sorry this build is failing! You can troubleshoot common issues here: 
     https://devcenter.heroku.com/articles/troubleshooting-node-deploys 

     Some possible problems: 

     - Node version not specified in package.json 
     https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version 

     Love, 
     Heroku 

!  Push rejected, failed to compile Node.js app. 
!  Push failed 

는, 어떤 도움에 감사드립니다. 더 자세한 정보가 필요하면 알려주십시오.

내 JSON 패키지 :

{ 
    "name": "n5-complete-guide", 
    "version": "0.0.0", 
    "license": "MIT", 
    "scripts": { 
    "_heroku": "https://www.angularonrails.com/deploy-rails-application-angular-cli-webpack-front-end/", 
    "start": "http-server dist/", 
    "lint": "tslint \"src/**/*.ts\"", 
    "test": "ng test", 
    "pree2e": "webdriver-manager update", 
    "e2e": "protractor", 
    "preinstall": "npm install -g http-server", 
    "postinstall": "ng build --prod" 
    }, 
    "private": true, 
    "dependencies": { 
    "@angular/animations": "^5.0.0", 
    "@angular/common": "^5.0.0", 
    "@angular/compiler": "^5.0.0", 
    "@angular/core": "^5.0.0", 
    "@angular/forms": "^5.0.0", 
    "@angular/http": "^5.0.0", 
    "@angular/platform-browser": "^5.0.0", 
    "@angular/platform-browser-dynamic": "^5.0.0", 
    "@angular/router": "^5.0.0", 
    "bootstrap": "^3.3.7", 
    "core-js": "^2.4.1", 
    "express": "^4.16.2", 
    "ng": "0.0.0-rc6", 
    "node": "^9.2.0", 
    "rxjs": "^5.5.2", 
    "zone.js": "^0.8.14" 
    }, 
    "devDependencies": { 
    "@angular/cli": "1.5.0", 
    "@angular/compiler-cli": "^5.0.0", 
    "@angular/language-service": "^5.0.0", 
    "@types/jasmine": "~2.5.53", 
    "@types/jasminewd2": "~2.0.2", 
    "@types/node": "~6.0.60", 
    "codelyzer": "~3.2.0", 
    "jasmine-core": "~2.6.2", 
    "jasmine-spec-reporter": "~4.1.0", 
    "karma": "~1.7.0", 
    "karma-chrome-launcher": "~2.1.1", 
    "karma-cli": "~1.0.1", 
    "karma-coverage-istanbul-reporter": "^1.2.1", 
    "karma-jasmine": "~1.1.0", 
    "karma-jasmine-html-reporter": "^0.2.2", 
    "protractor": "~5.1.2", 
    "ts-node": "~3.2.0", 
    "tslint": "~5.7.0", 
    "typescript": "~2.4.2" 
    } 
} 
+1

@MikaS이 – Mike

+0

NG 빌드 devDependencies에 각-CLI에 속할 수 있습니다 : 여기 내 package.json입니다. 모든 비 테스트 devDependencies를 종속성으로 옮겨 테스트 해 봅니다. – MikaS

+0

@MikaS 나는 이것을했는데 이제 heroku는 배포하는 데 훨씬 오래 걸렸지 만 설치 후 설치에서 다시 실패했습니다. – Mike

답변

0

@ angular/cli 및 @ angular/compiler-cli를 "devDependencies"에서 "dependencies"로 이동하십시오. 나는 그것을 추가

{ 
    "name": "mean-app", 
    "version": "0.0.0", 
    "license": "MIT", 
    "engines": { 
    "node": "6.11.3", 
    "npm": "3.10.10" 
    }, 
    "scripts": { 
    "ng": "ng", 
    "start": "node server.js", 
    "build": "ng build", 
    "test": "ng test", 
    "lint": "ng lint", 
    "e2e": "ng e2e", 
    "heroku-postbuild": "ng build" 
    }, 
    "private": true, 
    "dependencies": { 
    "@angular/animations": "^4.2.4", 
    "@angular/cli": "1.4.9", 
    "@angular/common": "^4.2.4", 
    "@angular/compiler": "^4.2.4", 
    "@angular/compiler-cli": "^4.2.4", 
    "@angular/core": "^4.2.4", 
    "@angular/forms": "^4.2.4", 
    "@angular/http": "^4.2.4", 
    "@angular/platform-browser": "^4.2.4", 
    "@angular/platform-browser-dynamic": "^4.2.4", 
    "@angular/router": "^4.2.4", 
    "angular2-toaster": "^4.0.1", 
    "axios": "^0.17.0", 
    "body-parser": "^1.18.2", 
    "bootstrap": "^4.0.0-beta.2", 
    "core-js": "^2.4.1", 
    "cors": "^2.8.4", 
    "express": "^4.16.2", 
    "jquery": "^3.2.1", 
    "mongoose": "^4.12.4", 
    "ngx-bootstrap": "^1.9.3", 
    "rxjs": "^5.4.2", 
    "zone.js": "^0.8.14" 
    }, 
    "devDependencies": { 
    "@angular/language-service": "^4.2.4", 
    "@types/jasmine": "~2.5.53", 
    "@types/jasminewd2": "~2.0.2", 
    "@types/jquery": "^3.2.15", 
    "@types/node": "~6.0.60", 
    "codelyzer": "~3.2.0", 
    "jasmine-core": "~2.6.2", 
    "jasmine-spec-reporter": "~4.1.0", 
    "karma": "~1.7.0", 
    "karma-chrome-launcher": "~2.1.1", 
    "karma-cli": "~1.0.1", 
    "karma-coverage-istanbul-reporter": "^1.2.1", 
    "karma-jasmine": "~1.1.0", 
    "karma-jasmine-html-reporter": "^0.2.2", 
    "protractor": "~5.1.2", 
    "ts-node": "~3.2.0", 
    "tslint": "~5.7.0", 
    "typescript": "~2.3.3" 
    } 
} 
0

사후에, 당신이 세계적으로 설치되어 랬 NG 실행 파일을 사용하고 있습니다. NG 이후 은 더 ng 명령을 사용할 수 없기 때문에 그것은 실패

"postinstall": "./node_modules/.bin/ng build --prod"

+0

이 문제가 해결되지 않았습니다 – Mike

+0

같은 오류가 있습니까? – Radar155

+0

예, 찾을 수 없습니다. – Mike

0

로 변경할 수 있습니다, 또한 당신의 의존성 중 하나입니다. 그것은 필요한 의존성으로 이동, 지역 바이너리를 실행하면 작동하지 않을 경우, 다음에 preinstall 스크립트를 변경하려고, @angular/cli가 제공하는 것 : 각 @

"preinstall": "npm i -g http-server && npm i -g @angular/cli", 
0

Beacause은/CLI는에 ng build를 사용하여 배포 컴퓨터에 설치되어 있지 스크립트 실 거예요. 해당 작업 수행

"scripts": { 
    ... 
    "build:prod": "ng build --prod", 
    "heroku-postbuild": "npm run build:prod" 
}, 

주의 사항. postinstall 대신 heroku-postbuild을 사용하십시오. 로컬 패키지 (이 경우 ng)를 사용하는 npm 스크립트를 실행하면 작동합니다. 하지만 Npm 스크립트에서 직접 ng build --prod을 실행하면 실 거예요.

관련 문제