我在这里按照Heroku上node.js的基本入门说明进行操作:
https://devcenter.heroku.com/categories/nodejs
这些指令不会告诉您创建.gitignore
node_modules,因此暗示应将node_modules检入git。当我在git中包含node_modules时,我的入门应用程序正确运行。
当我遵循以下更高级的示例时:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-
mongodb-socketio
https://github.com/mongolab/tractorpush-
server (源)
它指示我将node_modules添加到.gitignore。因此,我从git中删除了node_modules,将其添加到.gitignore中,然后重新部署。这次部署失败,如下所示:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.8.2
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
Error: npm doesn't work with node v0.8.2
Required: node@0.4 || 0.5 || 0.6
at /tmp/node-npm-5iGk/bin/npm-cli.js:57:23
at Object.<anonymous> (/tmp/node-npm-5iGk/bin/npm-cli.js:77:3)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/tmp/node-npm-5iGk/cli.js:2:1)
at Module._compile (module.js:449:26)
Error: npm doesn't work with node v0.8.2
Required: node@0.4 || 0.5 || 0.6
at /tmp/node-npm-5iGk/bin/npm-cli.js:57:23
at Object.<anonymous> (/tmp/node-npm-5iGk/bin/npm-cli.js:77:3)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/tmp/node-npm-5iGk/cli.js:2:1)
at Module._compile (module.js:449:26)
Dependencies installed
-----> Discovering process types
Procfile declares types -> mongod, redis, web
-----> Compiled slug size is 5.0MB
-----> Launching... done, v9
运行“ heroku
ps”可确认崩溃。好的,没问题,所以我回滚了更改,将node_module添加回git存储库,并将其从.gitignore中删除。但是,即使还原后,在部署时我仍然会收到相同的错误消息,但是现在应用程序再次正常运行。运行“
heroku ps”会告诉我该应用程序正在运行。
所以我的问题是正确的方法是什么?是否包含node_modules?为什么回滚时仍会收到错误消息?我的猜测是git储存库在Heroku方面处于不良状态?
常见问题解答不再可用。
从以下文档中shrinkwrap
:
如果您希望锁定软件包中包含的特定字节,例如对能够复制部署或构建有100%的信心,则应将依赖项检查到源代码控制中,或采用其他可验证的机制内容而不是版本。
香农和史蒂芬以前曾提到过这一点,但我认为,这应该是公认的答案的一部分。
以下建议列出的来源已更新。他们不再建议node_modules
提交文件夹。
通常不会 允许npm解决您软件包的依赖关系。
对于您部署的软件包,例如网站和应用程序,应使用npmrinkwrap锁定完整的依赖树:
https://docs.npmjs.com/cli/shrinkwrap
作为参考,npm FAQ清楚地回答了您的问题:
将node_modules检入git中以查找您部署的内容,例如网站和应用程序。不要将node_modules检入git中以查找要重用的库和模块。使用npm管理开发环境中的依赖关系,但不能管理部署脚本中的依赖关系。
并出于一些合理的理由,请阅读Mikeal
Rogers对此的帖子
。
资料来源:https : //docs.npmjs.com/misc/faq#should-i-check-my-node-modules-
folder-into-git
我在Heroku上遵循了Node.js的基本入门说明: https://devcenter.heroku.com/categories/nodejs 这些指令没有告诉您创建. gitignorenode_modules,因此暗示文件夹node_modules应该签入Git。当我在Git存储库中包含node_modules时,我的入门应用程序运行正常。 当我遵循更高级的示例时: 使用Node.js、
我在这里遵循了Heroku上Node.js的基本入门说明: https://devcenter.heroku.com/categories/nodejs 这些指令并不告诉您创建一个.gitignore node_modules,因此暗示文件夹node_modules应该签入Git。当我在Git存储库中包含node_modules时,我的入门应用程序可以正确运行。 当我遵循更高级的示例时: 使用No
问题内容: 我已经配置了SSL enpoint,并且可以确认它正在工作。当我进入日志时,会看到以下内容: 我试图追踪有关退出代码143的一些信息,以及为什么所有进程都被停止。签出以下服务器文件: 感谢您的提前反馈。如果需要,我可以提供更多详细信息。 ------解决方案(编辑)------- 请参阅下面的答案。 问题答案: 我在这里找到了答案:ExpressJS节点HTTPS服务器上的Heroku
我正在尝试使用grails教程将我的应用程序连接到共享数据库5MB。我使用的是grails 2.1.0。在我的本地机器上,当我运行heroku配置时,我可以看到DATABASE_URL被设置了,但是在执行git push之后······我的生成因错误而停止: 因此,我添加了日志记录,以查看Heroku上的环境。我已将println system.env添加到datasource.groovy中,但
在Heroku上部署Node.js应用程序时,我遇到以下错误。 2017-04-18T18:40:10.158442+00:00APP[Web1]:npm错误!请在任何支持请求中包含以下文件: 2017-04-18T18:40:10.158544+00:00APP[Web1]:npm错误!/app/npm-debug.log 2017-04-18T18:40:10.237236+00:00 Her
在Linux上创建JPackage安装程序Java应用程序的规范是什么? 我已经为Windows创建了一个安装程序,现在正在Linux上创建一个(使用Ubuntu) 到目前为止,我已经: 对于创建一个debian安装程序,它可以工作(安装尚未正常运行),但我对一些事情感到困惑,我不太熟悉linux环境。 无法看到linux-菜单-组或linux-快捷方式的效果 我应该使用linux-菜单-组还是l