JSコンパイルの問題により、Rakeタスク「assets:precompile」が失敗しています

Discourse のクリーンインストールを試みており、assets:precompile タスクを実行中に以下のエラーが発生しています。コンパイルエラーの内容がよくわかりません。

rake aborted!
Barber::PrecompilerError: Pre compilation failed for: {{#if isActive}}
  {{!-- template-lint-disable no-invalid-interactive --}}
  <div {{on "keydown" (action "keydown")}} class="emoji-picker {{if @isActive "opened"}}">
    {{!-- template-lint-enable no-invalid-interactive --}}
    <div class="emoji-picker-category-buttons">
      {{#if recentEmojis.length}}
        <button type="button" data-section="recent" {{action "onCategorySelection" "recent"}} class="btn btn-default category-button emoji">
          {{replace-emoji ":star:"}}
        </button>
      {{/if}}

      {{emoji-group-buttons onCategorySelection=(action "onCategorySelection") tagName=""}}

      {{#each-in customEmojis as |group emojis|}}
        <button type="button" data-section={{concat "custom-" group}} {{action "onCategorySelection" (concat "custom-" group)}} class="btn btn-default category-button emoji">
          {{replace-emoji (concat ":" emojis.firstObject.code ":")}}
        </button>
      {{/each-in}}
    </div>

    <div class="emoji-picker-content">
      <div class="emoji-picker-search-container">
        {{input
          class="filter"
          name="filter"
          placeholder=(i18n "emoji_picker.filter_placeholder")
          autocomplete="discourse"
          autocorrect="off"
          autocapitalize="off"
          input=(action "onFilter")
        }}

        {{d-icon "search"}}
      </div>

      <div class="emoji-picker-emoji-area" role="button" {{on "click" this.onEmojiSelection}} {{on "mouseover" this.onEmojiHover}}>
        <div class="results"></div>

        {{#conditional-loading-spinner condition=isLoading}}
          <div class="emojis-container">
            {{#if recentEmojis.length}}
              <div class="section recent" data-section="recent">
                <div class="section-header">
                  <span class="title">{{i18n "emoji_picker.recent"}}</span>
                  {{d-button icon="trash-alt" action=(action "onClearRecents") class="trash-recent"}}
                </div>
                <div class="section-group">
                  {{#each recentEmojis as |emoji|}}
                    {{replace-emoji (concat ":" emoji ":") (hash lazy=true)}}
                  {{/each}}
                </div>
              </div>
            {{/if}}

            {{emoji-group-sections}}

            {{#each-in customEmojis as |group emojis|}}
              <div class="section" data-section="custom-{{group}}">
                <div class="section-header">
                  <span class="title">
                    {{i18n (concat "emoji_picker." group)}}
                  </span>
                </div>
                {{#if emojis.length}}
                  <div class="section-group">
                    {{#each emojis as |emoji|}}
                      <img title={{emoji.code}} width="20" height="20" loading="lazy" class="emoji" src={{emoji.src}}>
                    {{/each}}
                  </div>
                {{/if}}
              </div>
            {{/each-in}}
          </div>
        {{/conditional-loading-spinner}}
      </div>

      <div class="emoji-picker-footer">
        <div class="emoji-picker-emoji-info">
          {{#if hoveredEmoji}}
            {{replace-emoji (concat ":" hoveredEmoji ":")}}
          {{/if}}
        </div>

        <div class="emoji-picker-diversity-picker">
          {{#each diversityScales as |diversityScale index|}}
            {{d-button
              icon=diversityScale.icon
              class=(concat "diversity-scale " diversityScale.name)
              title=diversityScale.title
              action=(action "onDiversitySelection" index)
            }}
          {{/each}}
        </div>
      </div>
    </div>
  </div>

  {{#if site.mobileView}}
    <div role="button" class="emoji-picker-modal-overlay" {{on "click" this.onClose}}></div>
  {{/if}}
{{/if}}

. Compiler said: Error
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/barber-0.12.2/lib/barber/precompiler.rb:33:in `rescue in compile'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/barber-0.12.2/lib/barber/precompiler.rb:30:in `compile'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/barber-0.12.2/lib/barber/precompiler.rb:8:in `compile'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/ember-handlebars-template-0.8.0/lib/ember/handlebars/template.rb:166:in `block in precompile_ember_handlebars'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cache.rb:85:in `fetch'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/private/env/ruby2.7.x/ruby2.7.x/lib/ruby/gems/2.7.0/gems/ember-handlebars-template-0.8.0/lib/ember/handlebars/template.rb:165:in `precompile_ember_handlebars'
~/Discourse/Discourse-2.8.x/AL2_x86_64/DEV.STD.PTHREAD/build/rails-root/lib/freedom_patches/raw_handlebars.rb:99:in `call'

それは標準的なインストールではないようですね?

「いいね!」 2

はい、Amazon Linux マシンにカスタムインストールを実行しようとしています。

Discourseはフリーでオープンソースのソフトウェアですが、Metaでは標準のインストールガイドに従ったインストールのみ無料サポートを提供しています。ソフトウェアの実行方法には無限の組み合わせがあるため、これにより、すべてのユーザーにとって使いやすく、常に最新の状態に保たれたベースを提供できます。

プラグインまたはテーマを使用してDiscourseをカスタマイズしたい場合は、サポートされているインストールを実行したまま、すべてを変更できます。

「いいね!」 2

代わりにフォークして変更を加えた場合、そうしたことを非常に後悔することになるでしょう。

問題の原因を特定できました。Essentially、assets-precompile rake タスクを実行している際に、emoji-picker.hbs の hbs テンプレートを使用してすべての js ファイルを読み込もうとしています。このテンプレートには、呼び出し元からデータを供給する必要がある特定の変数があり、ここで解析が失敗します。「@」参照を持たない他の hbs ファイルは正常にコンパイルされています。

これらの hbs テンプレートが discourse でどのように使用されているかについてのアイデアやドキュメントはありますか?

Discourse プラグイン作成入門 Part 1: 基本的なプラグインの作成 から始めることができます。