8

スクリプト評価に関する Content-Security-Policy (CSP) 制限に違反することなく、 ES6 テンプレート リテラル(例: )のスタイルでテンプレートを解析するテンプレート エンジンはありますか?"string ${var}"

スクリプト評価に関するCSP の制限により、、、evalおよびが防止new Functionされます。setTimeout(string)setInterval(string)

John Resig のMicroTemplates、 lodash _.template 、 DoT.jsなど、ES6 スタイルのテンプレート リテラルのようなものを提供または提供するように変更できるテンプレート エンジンが多数あります。ただし、すべてを使用して CSP に違反しているようですnew Function

制限のない Javascript を使用できると便利な場合varもありますが、明らかな理由により、これは不可能な場合があります。ただし、必要に応じて出力をフォーマットするようにエンジンを変更できる必要があります。

この状況では、パフォーマンスは問題ではなく、テンプレートを事前にコンパイルすることはできません。他の人は事前コンパイルについて議論しています。

追加の制限として、コンテンツは HTML ではなくテキストです。結果として、Knockout や PURE などの DOM 指向のテンプレート エンジンが効果的に機能しないとは思いません。

私の最初の考えは、mustache.jsから始めてそこから変更することです (つまりmustache.tags = ['${', '}']、変更またはDIY ソリューションですが、CSP とテンプレートに関する議論がかなり不足しているように見えるため、このトピックに関する一般的な考えに感謝します。 .

4

2 に答える 2