- Notifications
You must be signed in to change notification settings - Fork12
Closed
Description
This issue tracks progress towards IMA@18 release.
Missing features
- Add options to disable build of
legacy
version fromima.config.js
- Migrate to new version of message formatMigrate from message format v2 to v3 #206
Known issues
Currently dynamic imports don't work on server-side.(works)- When error-overlay displays compile error and the browser window is refreshed, there's blank page, instead of SSR rendered error overlay for compile error, as it's done with the runtime SSR error overlay (not sure if this can be done easily). (Fixed infix: 🐛 Fixed issue with displaying compile errors in overlay #210)
- README and documentation missing for new packages (
@ima/cli
,@ima/dev-utils
,@ima/error-overlay
,@ima/hmr-client
). extractSourceMappingUrl
in@ima/dev-utils
can probably be simplified.fix: 🐛 Replaced source-map with source-map-js #218 (works as intented, replacessource-map
withsource-map-js
pkg- node 18 support (drop node-fetch dependency in favor of native implementation of fetch in node 18). (Fixed infix: 🐛 Fixed issue with displaying compile errors in overlay #210)
- Kill already running applications on the same port when running
npm run dev
(e.g. already running app on 3001 is closed before starting new one, sonpm run dev
never fails in these situations).feat: 🎸 Kill already running app on the same port before launch #213 - Drop node-fetch, use native fetch from node 18 by default.feat: 🎸 Node 18 native fetch support #212
Potential improvements (don't need to be ready for IMA@18 release)
- Refactor
@ima/helpers
to esm.refactor: 💡 Rewritten helpers to esm modules #214 - Strip env specific settings during build time, so dev/test specific settings is not bundled in production bundle. #261
- Define
exports
fields in package.json on@ima/dev-utils
to have nicer imports along with Typescript 4.7 update (when released) Auto generate $Runner assets ($Source) at build-time (GenerateRunnerPlugin extension)Content hashes can be used in this case for cache busing, instead of the?v=[version]
param (this results in faster load times in dev)We would no longer need to define $Source asset paths inenvironment.js
, however we still need to have an option to define custom attributes or conditional renders for each asset.
Try to getwebpack-dev-middleware
to work with in-memory assets only. Currently every HMR update is writtenand served from disk.webpack-dev-middleware
has an option to serve these updates directly from memory usingmemfs
. (may have something to do withHMR not working on webpack 5.66.0 webpack/webpack#15206)
TODO
core
- globals from setupFile are not visible to TS compiler (using, extend), some tests are commented out
- RouteOptions type is defined in core but is using ComponentType from react - core should not have react dependency
react-page-renderer
- some tests with jest fake timers do not work (timeout) and are commented out
- jest.config.js needs polishing (copy config from core)
- types from core has to be removed in favor of new defition files from core (after core is in TS)
- ClientPageRenderer and LegacyClientPageRenderer has to be removed from index.ts and compiled separately
This issue will be updated as new fixes/features are merged to next or new issues are discovered.