2016-08-02 81 views
0
{ 
    "name": "******", 
    "version": "1.0.0", 
    "description": "*******", 
    "engines": { 
    "node": "6.3.1" 
    }, 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "start": "cd server && npm install && node app.js" 
    }, 
    "author": "******", 
    "license": "ISC" 
} 

具體來說,是'開始'不可靠嗎?這是迄今唯一一直在部署我的應用程序的package.json配置。啓動腳本中的'npm install'是否冗餘和/或可能會導致heroku端的滯後? Heroku做了一個npm安裝,無論如何是正確的?所以我只是將它指向正確的node_modules到npm install?以這種方式在Heroku上啓動Node.js應用程序可以嗎?

此外,爲什麼它只能與'cd server & & node app.js'而不是'node server/app.js'一起使用?

回答

0

它看起來像您的節點應用程序不存在於您的項目的根目錄,這就是爲什麼您需要額外的步驟來安裝模塊並啓動應用程序。默認情況下,Heroku的NPM安裝並從您的應用程序的根目錄開始(否則,怎麼會就知道哪個目錄「是你的應用程序?」)

您應該添加後腳本:

"postinstall": "cd server && npm install" 

而且簡化您的啓動腳本:

"start": "cd server && node app.js" 

後腳本將確保您的節點模塊在構建階段建(並存儲在塞) - 這樣,你的應用程序不會有NPM安裝每次它啓動。

0

你可以有你的「開始」簡化這個過程腳本只需運行「節點app.js」

當你把你的項目的Heroku那麼你可以做你的npm installnpm start由根運行一切目錄。

heroku run npm install

heroku run npm start

這將啓動您的應用程序。

嘗試移動文件,使項目從根目錄運行,然後按照下列步驟操作。

相關問題