推向Heroku的错误(node.js)

当我将一个默认的快速应用程序推到heroku时,出现以下错误。 我已经确保我与Herokuku-toolbelt等最新,但似乎是从heroku方面的错误? 有没有人看过这个? 它推动正常,按预期工作,但我怀疑这可能会导致未来的问题。

Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 404 bytes, done. Total 4 (delta 1), reused 0 (delta 0) -----> Heroku receiving push -----> Node.js app detected /app/slug-compiler/buildpacks/nodejs2/vendor/json/json:425 return runInNewContext("(" + JSON.stringify(datum) + ")" + lookupCode); ^ TypeError: Cannot read property 'node' of undefined at evalmachine.<anonymous>:1:118 at lookupDatum (/app/slug-compiler/buildpacks/nodejs2/vendor/json/json:425:10) at Socket.<anonymous> (/app/slug-compiler/buildpacks/nodejs2/vendor/json/json:628:24) at Socket.emit (events.js:61:17) at Socket._onReadable (net.js:656:51) at IOWatcher.onReadable [as callback] (net.js:177:10) /app/slug-compiler/buildpacks/nodejs2/vendor/json/json:425 return runInNewContext("(" + JSON.stringify(datum) + ")" + lookupCode); ^ TypeError: Cannot read property 'npm' of undefined at evalmachine.<anonymous>:1:118 at lookupDatum (/app/slug-compiler/buildpacks/nodejs2/vendor/json/json:425:10) at Socket.<anonymous> (/app/slug-compiler/buildpacks/nodejs2/vendor/json/json:628:24) at Socket.emit (events.js:61:17) at Socket._onReadable (net.js:656:51) at IOWatcher.onReadable [as callback] (net.js:177:10) -----> Resolving engine versions Using Node.js version: 0.4.7 Using npm version: 1.0.94 -----> Fetching Node.js binaries -----> Vendoring node into slug -----> Installing dependencies with npm express@2.5.8 /tmp/build_1m5t2ah1oglfb/node_modules/express connect@1.8.5 /tmp/build_1m5t2ah1oglfb/node_modules/express/node_modules/connect qs@0.4.2 /tmp/build_1m5t2ah1oglfb/node_modules/express/node_modules/qs mime@1.2.4 /tmp/build_1m5t2ah1oglfb/node_modules/express/node_modules/mime formidable@1.0.9 /tmp/build_1m5t2ah1oglfb/node_modules/express/node_modules/connect/node_modules/formidable mkdirp@0.3.0 /tmp/build_1m5t2ah1oglfb/node_modules/express/node_modules/mkdirp jade@0.20.3 /tmp/build_1m5t2ah1oglfb/node_modules/jade commander@0.5.2 /tmp/build_1m5t2ah1oglfb/node_modules/jade/node_modules/commander mkdirp@0.3.0 /tmp/build_1m5t2ah1oglfb/node_modules/jade/node_modules/mkdirp Dependencies installed -----> Discovering process types Procfile declares types -> web -----> Compiled slug size is 3.1MB -----> Launching... done, v7 

这是一个英雄问题,似乎已经消失了。

我打算在这里出去解释一下你的package.json 。 看看指定Node.js / npm的版本 。 一切都是有效的JSON ?

我的猜测是,这个evalmachine是在sandbox环境下评估你的package.json (参见vm.runInNewContext ),而lookupCode是首先检查engines.node ,然后是engines.npm一些方法。 这两个都可以访问吗? 如果这是事实,那么Heroku的开发人员就不要期待这个错误,并用一些有用的信息来解释它。 他们通常对这样的事情很好。