2014-02-14 51 views
0

我無法弄清楚如何使用meteor js來獲取使用heroku dyno的twilio npm模塊。它在localhost上很好用,但在heroku上崩潰。這是我建立了我的Heroku應用程序:使用heroku和流星時無法找到模塊twilio

heroku create meteorherokutwilio --stack cedar --buildpack https://github.com/oortcloud/heroku-buildpack-meteorite.git 
heroku config:add ROOT_URL=http://meteorherokutwilio.herokuapp.com/ 
heroku labs:enable websockets -a meteorherokutwilio 
git push heroku master 

我添加twilio到我的流星項目是這樣的: 地鐵加twilio

這是我如何加載twilio:

var client = Npm.require('twilio')("key", "secret"); 

這是錯誤:

/app/.meteor/heroku_build/app/programs/server/boot.js:186 

}).run(); 
    ^
Error: Cannot find module 'twilio' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.Npm.require (/app/.meteor/heroku_build/app/programs/server/boot.js:88:18) 
    at app/meteor-heroku-twilio.js:18:24 
    at /app/.meteor/heroku_build/app/programs/server/boot.js:159:61 
    at Array.forEach (native) 
    at Function._.each._.forEach (/app/.meteor/heroku_build/app/programs/server/node_modules/underscore/underscore.js:79:11) 
    at /app/.meteor/heroku_build/app/programs/server/boot.js:159:5 
    Process exited with status 8 
    State changed from starting to crashed 

,我也做了與最低點,一混帳回購協議代碼'mount來演示該問題:https://github.com/esromneb/meteor-heroku-twilio/

回答

3

Npm.require僅適用於標準的節點程序包(當然,它適用於它發現安裝的軟件包,但你應該只依賴於它的標準封裝,除非你想手動包添加到您的Heroku服務器和您希望在未來運行的每臺服務器)。

對於所有其他NPM包,這裏有npm隕石包。

使用mrt add npm命令將其添加到您的項目中。

然後創建packages.json文件,所有需要的軟件包的列表,例如:事後

{ 
    "twilio": "1.5.0", 
    "oauth": "0.9.11" 
} 

,包括你的包Meteor.require

var client = Meteor.require('twilio')("key", "secret"); 
+0

感謝這個偉大的工程! – portforwardpodcast