【问题标题】:Can a Procfile have comments?Procfile 可以有评论吗?
【发布时间】:2016-09-02 00:37:41
【问题描述】:

是否可以将 cmets 放在 Procfile 中?如果有,语法是什么?

不确定这是否重要,但我在 Heroku 上托管。

【问题讨论】:

    标签: heroku procfile


    【解决方案1】:

    似乎 Heroku 实际上并不接受 // 作为 cmets(它会中断),而 # 似乎可以工作。 无论如何,要测试您的 Procfile,您可以使用 heroku local command

    【讨论】:

      【解决方案2】:

      作为该问题的 2020 年更新,Heroku 已从在 Heroku Local 中使用 Forego 切换到 node-foreman(原始工头的一个端口)。话虽如此,自 2017 年以来,工头读取和写入 Procfiles 的方式并没有太大变化。但是在 2016 年 6 月左右(在 2016 年 5 月更新此问题之后),似乎用户发现进程仍将从行启动以# 开头。以下仍将启动一个进程:

      # foo: cd foo && bundle exec rails s -p 3000
      

      另一方面,// 似乎确实阻止了在该行上启动进程。阻止以下运行:

      // foo: cd foo && bundle exec rails s -p 3000
      

      您可以使用其中任何一个来创建 cmets,因为如上所述,以# 开头的行将不会被读取,除非它们声明了有效的进程。另一方面,如果您试图注释掉声明了有效进程的行,则似乎// 是要使用的注释样式。

      【讨论】:

        【解决方案3】:

        是的,您可以将 cmets 放在 Procfile 中。我知道两个解析 Procfile 的程序,foremanforego

        在起源于 Procfile 格式的 foreman 中,Procfile 可以包含 cmets、空行以及实际上任何看起来不像有意义的 Procfile 行的行。

        来自the class that parses a Procfile

        # A valid Procfile entry is captured by this regex:
        #
        #   /^([A-Za-z0-9_]+):\s*(.+)$/
        #
        # All other lines are ignored.
        

        放弃,which Heroku usesfollows the same scheme

        【讨论】:

        • 你能明确评论的语法吗?您的回答暗示了前导哈希字符,但我不确定
        • 没有这样的注释语法,只有我展示的语法,它标识要启动的进程。任何不匹配的行都会被忽略,实际上是注释。当然,理性的人会在 cmets 前加上 # 之类的前缀,以使它们显而易见,并避免与进程语法意外匹配。
        猜你喜欢
        • 2010-12-29
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 2014-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        相关资源
        最近更新 更多