rfcs icon indicating copy to clipboard operation
rfcs copied to clipboard

Build-time configuration of index.html

Open sandstrom opened this issue 3 years ago • 3 comments
trafficstars

I'd like to gauge interest / comments for an easier way to customize index.html output.

Use-case

We have some dynamic values that we want to interpolate into the index.html file at build time. For example, static classes on the <html> element and special meta attributes.

Ember already provides the content-for hook, but adding individual attributes to specific html elements is trickier.

Possible solution

  • Exposing the internal configReplacePatterns API, for example a addReplacePattern method or a key under config (environment.js), say additionalReplacePatterns: [ … ]
  • Allowing custom 'slots' for use with {{content-for 'my-slot'}}.

Reference code

https://github.com/ember-cli/ember-cli/blob/b24b73b388934796ca915ca665b48a27c857199b/lib/utilities/ember-app-utils.js#L169

sandstrom avatar Aug 16 '22 13:08 sandstrom

It doesn't meet your needs here, but for discussion sake what we do is use ember-cli-deploy-json-config to extract our index.html into JSON and then parse that json on the server to send a final index.html with these dynamic parts added there.

jrjohnson avatar Aug 18 '22 21:08 jrjohnson

Thanks, good suggestions!

We also have a hack in place to make this work. But it would be cleaner if something like this was available in core. Customizing index.html is pretty common.

sandstrom avatar Aug 19 '22 07:08 sandstrom

I assume, under Embroider (if it's possible / allowed at some point), that using https://github.com/jantimon/html-webpack-plugin might be an option to customise the final index.html?

bertdeblock avatar Feb 05 '23 10:02 bertdeblock