2015-10-28 19 views
7

Heroku'da barındırmak istediğim bir düğüm projem var. Ben HerokuHeroku, düğüm sürümünü okumaz

git push heroku master 
uygulamayı itmek çalıştığınızda Ancak

{ 
    "name": "*********", 
    "version": "0.0.0", 
    "private": true, 
    "engines": { 
    "node": "0.12.x", 
    "npm": "2.5.x" 
    }, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "body-parser": "^1.13.3", 
    ... 
} 

: Ben açıkça şöyle (kök dizininde bulunan) benim package.json, içinde düğüm ve npm versiyonlarını tanımladık

Heroku, uygulamayı oluşturmaya çalışır, ancak nod ve npm versiyonunu başaramayacak gibi görünüyor. İşte aldığım cevap.

remote: -----> Installing binaries 
remote:  engines.node (package.json): unspecified 
remote:  engines.npm (package.json): unspecified (use default) 
remote:   
remote:  Resolving node version (latest stable) via semver.io... 
remote:  Downloading and installing node 4.2.1... 
remote:  Using default npm version: 2.14.7 

Neden heroku, package.json öğesinin düğümü ve npm sürümünü okumaz?

cevap

3

@rdegges package.json doğru Heroku kararlı olmadığını haklıydı:

Başvuru için, burada da bir node.js çalışma zamanını belirtmeye ilişkin Heroku dokümanlar bulunmaktadır. Bu yüzden sadece Heroku'nun talimatlarını takip etmek benim için bir sebepten dolayı çalışmadı. Çalışması için yapmam gereken şey buydu.

git clone <my git project> 
heroku create <app name> 

#remove package.json 
mv package.json tmp_package.json 
git add package.json 
git commit -m "removed package.json" 

#re-add package.json 
mv tmp_package.json package.json 
git add package.json 
git commit -m "re-added package.json" 

git push heroku master 
0

Bu benim için çalışıyor - bu değişiklikleri gerçekten Git'e yaptığınızdan emin olun ve depoyu Heroku'ya itti. Ayrıca Heroku uygulamanız için tam Node ve NPM sürüm numaralarını belirtmek isteyebilirsiniz.

Bu, belirttiğiniz değişken sürümlerle çalışacak olsa da, sürümlerde küçük değişiklikler sizin için sorunlara neden olabileceği için önerilmez. https://devcenter.heroku.com/articles/nodejs-support#node-js-runtimes

0

Diğer çözümleri denedim, ancak benim için çalışmadı. Ancak package.json ad alanını değiştirerek, işe yaradı:

Gönderen:

{ 
    ... 
    "name": "foo" 
    ... 
} 

için:

{ 
    ... 
    "name": "bar" 
    ... 
} 

Alternatif 2:

ben yapmam gerektiğinde diğer bilgisayarımda da aynısını yap, işe yaramadı, ama package.json'u kaldırmayı denedim, sıfırdan yeniden oluşturdum ve sonra biraz tuhaf tepki gösterdi oğul (dosya meta?):

Belki ana dal dal güncelleştirilmezse değildir
$ rm package.json 
$ npm init 
0

, kullanmak için mürşide dağıtmak istediğiniz dalı birleştirme deneyin:

git push heroku master