Aggiungi JavaScript a un componente del tema

C’è un buon modo per aggiungere JavaScript (un singolo file, minimizzato) a un componente del tema in modo che possa essere utilizzato in common/header.html?

Funziona. Ho appena aggiunto il JS (non minimizzato) in common/header.html.

Vedi discourse-highlight-text/common/header.html at master · sbernhard/discourse-highlight-text · GitHub

Sarebbe utile se qualcuno potesse documentare questo comportamento nella guida per sviluppatori di temi/componenti.

Come hai utilizzato il JS nel tuo componente? Sto usando il componente Versatile Banner e voglio aggiungere un pulsante che chiami la mia funzione JS personalizzata. L’ho inserito nell’head come hai indicato, ma ricevo un errore CSP:

dev.londonbikers.com/:1 Rifiutato l'esecuzione di un gestore di eventi inline perché viola la seguente direttiva Content Security Policy: "script-src https://dev.londonbikers.com/logs/ https://dev.londonbikers.com/sidekiq/ https://dev.londonbikers.com/mini-profiler-resources/ https://dev.londonbikers.com/assets/ https://dev.londonbikers.com/brotli_asset/ https://dev.londonbikers.com/extra-locales/ https://dev.londonbikers.com/highlight-js/ https://dev.londonbikers.com/javascripts/ https://dev.londonbikers.com/plugins/ https://dev.londonbikers.com/theme-javascripts/ https://dev.londonbikers.com/svg-sprite/". Per abilitare l'esecuzione inline è necessario utilizzare la parola chiave 'unsafe-inline', un hash ('sha256-...') o un nonce ('nonce-...').

Questo avviene quando chiamo il mio codice tramite onclick="NavigateToCustomLoginUrl('facebook')" su un pulsante.

Oh, credo di aver risposto alla mia stessa domanda tramite Content security policy  |  Articles  |  web.dev

Controlla loadScript nel codice/metadati per un metodo sistematico per raggiungere questo obiettivo.