Generate SystemJS config files from node_modules
The easiest way to include modules in SystemJS is currently through JSPM. This project aims to provide an alternative, by leveraging the deterministic installs of Yarn (also works with npm) and generating config files to explain to SystemJS how to resolve modules from node_modules
.
- Trace node_modules and build registry
- Generage compatability configs for packages
- Generate valid SystemJS config file
- Make sure loading React.JS works
- Cache registry (to speed up subsequent generations)
- Use own @node polyfills. See #1 for progress
- Respect
jspmPackage: true
- Perform path optimisations (nm: -> node_modules), for smaller configs
- Fully support npm resolve algorithym (upper node_module and single dep node_modules)
- Allow simple local overrides
- Use JSPM overrides
- Allow dependency filtering (so we don't include deps meant for just the server)
- Allow configurability
- Make more robust
Currently, given this package.json, SystemJS Config Builder generates this config.
You can test the generation via the cli in systemjs-tools.
yarn global add systemjs-tools
add SystemJS @node browser polyfills
yarn add systemjs-nodelibs
and generate the config
systemjs config
optionally you can also add a postinstall hook to do this automatically
package.json
{
"scripts": {
"postinstall": "systemjs config"
}
}
Thanks to Juha Järvi for helping me flesh out this idea and for the discussions regarding his awesome cbuild project.