使用heroku和meteor时找不到模块twilio

时间:2014-02-14 22:38:49

标签: heroku meteor npm twilio

我无法弄清楚如何使用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/

1 个答案:

答案 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");