当我尝试将 Meteor 应用部署到 Heroku 时,它在启动时崩溃。
Exception from task: Error: function expects no more than -1 arguments at /app/.meteor/heroku_build/app/programs/server/node_modules/fibers/future.js:26:10 at readUtf8FileSync (packages/boilerplate-generator/boilerplate-generator.js:7) at packages/boilerplate-generator/boilerplate-generator.js:82 at Array.forEach (native) at Function._.each._.forEach (packages/underscore/underscore.js:105) at Boilerplate._generateBoilerplateFromManifestAndSource (packages/boilerplate-generator/boilerplate-generator.js:64) at new Boilerplate (packages/boilerplate-generator/boilerplate-generator.js:17) at generateBoilerplateInstance (packages/webapp/webapp_server.js:288) at packages/webapp/webapp_server.js:556 at Function._.each._.forEach (packages/underscore/underscore.js:113) throw err; ^ Error: function expects no more than -1 arguments at Object.Future.wait (/app/.meteor/heroku_build/app/programs/server/node_modules/fibers/future.js:326:15) at _.extend.runTask (packages/meteor/fiber_helpers.js:79) at Object.WebAppInternals.generateBoilerplate (packages/webapp/webapp_server.js:553) at Object.main (packages/webapp/webapp_server.js:773) at /app/.meteor/heroku_build/app/programs/server/boot.js:194:27 - - - - - at /app/.meteor/heroku_build/app/programs/server/node_modules/fibers/future.js:26:10 at readUtf8FileSync (packages/boilerplate-generator/boilerplate-generator.js:7) at packages/boilerplate-generator/boilerplate-generator.js:82 at Array.forEach (native) at Function._.each._.forEach (packages/underscore/underscore.js:105) at Boilerplate._generateBoilerplateFromManifestAndSource (packages/boilerplate-generator/boilerplate-generator.js:64) at new Boilerplate (packages/boilerplate-generator/boilerplate-generator.js:17) at generateBoilerplateInstance (packages/webapp/webapp_server.js:288) at packages/webapp/webapp_server.js:556 at Function._.each._.forEach (packages/underscore/underscore.js:113)
似乎Npm.require('fs').readFile.length
未定义。
我正在使用this构建包。当我在本地构建应用程序并使用 node main.js
进行测试时,它可以工作。我还需要对 Meteor 0.9.2.1 的构建包进行任何其他更改吗?
我找出了问题所在,它不是由 buildpack 或 Heroku 引起的。
我使用 Nodetime 来包装 fs.readFile
,然后使用 apply 调用原始文件。这就是为什么 Npm.require('fs').readFile.length
为 0(不像我想象的那样未定义)。
我是一名优秀的程序员,十分优秀!