mirror of
https://github.com/discourse/discourse.git
synced 2026-08-12 05:37:26 +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> |
||
|---|---|---|
| .. | ||
| app | ||
| assets | ||
| config | ||
| db/migrate | ||
| jobs/regular | ||
| lib | ||
| spec | ||
| test/javascripts | ||
| package.json | ||
| plugin.rb | ||
| tsconfig.json | ||