0.30.0
Summary
With recent changes to the custom component interface, it's now possible to remove all runtime reliance on NPM. Doing so has many virtuous knock-on effects:
- Removal of large chunks of code
- Greatly simplifies how users dynamically experiment with React component libraries, because their usage no longer requires a build step. Instead they can be loaded in the browser from a CDN that distributes ESM modules.
- The built-in client code needs to make fewer assumption about where static resources are located, and as a result, it's also easier to coordinate the server and client code.
- Alternate client implementations benefit from this simplicity. Now, it's possible to install idom-client-react normally and write a
loadImportSource()
function that looks for route serving the contents ofIDOM_WEB_MODULES_DIR.
This change includes large breaking changes:
- The CLI is being removed as it won't be needed any longer
- The
idom.client
is being removed in favor of a stripped downidom.web
module - The
IDOM_CLIENT_BUILD_DIR
config option will no longer exist and a newIDOM_WEB_MODULES_DIR
which only contains dynamically linked web modules. While this new directory's location is configurable, it is meant to be transient and should not be re-used across sessions.
The new idom.web
module takes a simpler approach to constructing import sources and expands upon the logic for resolving imports by allowing exports from URLs to be discovered too. Now, that IDOM isn't using NPM to dynamically install component libraries idom.web
instead creates JS modules from template files and links them into IDOM_WEB_MODULES_DIR
. These templates ultimately direct the browser to load the desired library from a CDN.