Node.js没有在Heroku上部署

问题描述 投票:0回答:1

我有一个使用express-hbs运行的Node.JS + express应用程序。在本地运行时一切正常,但在部署到Heroku时失败。

我尝试了一些明显的故障排除步骤,例如:

var port = process.env.PORT || 80;

但问题仍然存在。

这是完整的错误:

/app/node_modules/express-hbs/lib/hbs.js:90
   var matches = str.match(layoutPattern);
 TypeError: Cannot read property 'match' of undefined
     at ExpressHbs.declaredLayoutFile (/app/node_modules/express-hbs/lib/hbs.js:90:21)
     at parseLayout (/app/node_modules/express-hbs/lib/hbs.js:476:27)
     at /app/node_modules/express-hbs/lib/hbs.js:598:7
     at getSourceTemplate (/app/node_modules/express-hbs/lib/hbs.js:572:16)
     at compileFile (/app/node_modules/express-hbs/lib/hbs.js:594:5)
     at /app/node_modules/express-hbs/lib/hbs.js:647:16
     at ReaddirpReadable.<anonymous> (/app/node_modules/express-hbs/lib/hbs.js:196:17)
     at emitNone (events.js:106:13)
     at ReaddirpReadable.emit (events.js:208:7)
     at endReadableNT (/app/node_modules/readable-stream/lib/_stream_readable.js:1010:12)
 npm ERR! code ELIFECYCLE
 npm ERR! errno 1

本地我运行Node.js v6.11.4和NPM v3.10.10,这两个都包含在package.json中

node.js express heroku express-handlebars
1个回答
0
投票

这可能是一个issue与你package-lock.json文件脱离...特别是,因为错误来自你的express-hbs节点模块:

应用程序/ node_modules /快递-HBS / lib目录/ hbs.js:90

也许你可以尝试删除你当地的package-lock.json文件,以及你的node_modules目录,然后尝试重新安装你的依赖库?

例如,一旦你的package-lock.jsonnode_modules被删除:

rm package-lock.json
rm -rf node_modules

尝试使用:npm重新安装项目的依赖npm install

重新安装这些库后,您将获得一个新的package-lock.json文件,因为该文件是自动生成的,并且几乎就像是为其他人构建项目的“真相来源”。现在尝试将代码推送并发布到Heroku,看看这是否可以解决您的问题。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.