Estou tentando importar qrcode.js para gerar um QRcode no navegador.
Estou sendo bloqueado pelo CSP também. Não entendo como é um problema de CSP se está no mesmo host. Isso está em um servidor de produção usando discourse_theme para depuração.
E parece que a função não é chamada para carregar o script se eu não chamar this.ensureQRCode();, o que você não parece estar fazendo em seu componente.
O script está disponível e eu posso recuperá-lo (então eu acertei as coisas em about.json e /assets/qrcode.js), mas o navegador se recusa a carregá-lo.
O resultado do seu loadscript é uma promessa, então você precisa colocar seu código que depende dela em um bloco .then, conforme meu exemplo de código.
Isso resolve o CSP, torna o tema autônomo e é considerado uma boa prática, em vez de carregá-lo de terceiros.
Carregue-o preguiçosamente
Somente quando necessário, você pode carregá-lo preguiçosamente usando await loadScript. Isso significa que ele não será carregado em páginas onde não é necessário, diminuindo a velocidade de todo o seu site.