mirror of
https://github.com/discourse/discourse.git
synced 2026-08-11 02:59:07 +08:00
1. Remove 'federated exports' system, which was named entrypoint exports for every module inside the plugin. Replace it with a single import of the target plugin's 'compatModules', and then update call sites to do a 'just in time' lookup of the module and export. This is implemented in a new `babel-resolve-plugin-imports` plugin 2. Update theme & plugin build systems to produce a list of external plugins which are imported. For plugins, it's stored in the manifest. For themes, it's stored in a new column of the javascript_caches table. 3. Refactor theme extra_js loading to use a more structured data model, and move the HTML generation to the erb template 4. Update core importmap to identify any missing plugin dependencies and add a fake placeholder module for them. This allows the imports to exist without causing a boot error. The imported values will resolve to 'null'. 5. Update core plugins to remove use of `optionalRequire`, and replace it with simple imports. These are now functionally equivalent, but without leaning on the legacy `loader.js` system of core Co-authored-by: Jarek Radosz <jarek@cvx.dev> |
||
|---|---|---|
| .. | ||
| about | ||
| admin/backups | ||
| application | ||
| badges | ||
| categories | ||
| common | ||
| default | ||
| dev_mode | ||
| embed | ||
| exceptions | ||
| finish_installation | ||
| groups | ||
| home_page | ||
| invites | ||
| layouts | ||
| list | ||
| metadata | ||
| offline | ||
| posts | ||
| published_pages | ||
| qunit | ||
| robots_txt | ||
| safe_mode | ||
| search | ||
| session | ||
| sitemap | ||
| static | ||
| tags | ||
| topics | ||
| user_notifications | ||
| users | ||