Deploying individual Engines

Is it possible to build & deploy Engines separately from the host application? If so, how? If not, what work would need to be done to allow this?

I wanted to post here to hopefully gather potential solutions/resources, any possible work done in user space, possible workarounds, etc.

We have a basic setup with one consuming app (the dashboard) and a growing number (5 ATM) of Engines that represent the various lines of businesses within our app. A recent concern among my team has come up with regards to having more control of the build and deploying the individual parts of our app. Sadly, this has lead to discussions on considering other, lighter-weight frameworks that allow the use of bundlers (a la React + Webpack).

Some very high-level thoughts I had:

  • It seems all the Engine asset info is in [app-name]/config/asset-manifest, this could be bundled as a separate JSON file that Engines could update, deploy along with its assets, and then allow the host app to consume independently and always reference the newly deployed engine assets
  • Possible issues if new routes are added to the Engine, would the existing mount in the host app’s route map pick these up
  • Will the new Packager ember-cli api help/solve this?

Thanks in advance for any feedback.

3 Likes