我无法弄清楚如何使用meteor js让twilio npm模块在heroku dyno上工作。它在localhost上工作得很好,但它在heroku上崩溃了。这就是我构建myoku应用程序的方式:
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添加到我的流星项目中,如下所示: mrt add 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
我还使用最少量的代码制作了一个git repo来演示问题:https://github.com/esromneb/meteor-heroku-twilio/
答案 0 :(得分: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");