This repository was archived by the owner on Dec 10, 2019. It is now read-only.
This repository was archived by the owner on Dec 10, 2019. It is now read-only.
Be able to resolve arbitrary modules #1
Open
Description
We should able to provide any mapping we want of module names requested in es2015 syntax to modules delivered to the code. The first step should be registering component-patterns as pattern partials so that component-patterns can include each other with an import
and JSX syntax.
Syntax options
We may or may not able to support more than one of these.
One module per pattern, native naming
import Button from 'button';
- PRO: 100% portable outside Pattern Lab (holy grail option)
- CON: Not very atomic-y at the code level, though it would still be atomic in presentation in PL if directories are organized that way
One module per atomic type, native naming
import Button from 'atoms';
- PRO: more atomic-y, reads the best IMO
- CON: imposes some restrictions on how code needs to be organized in an environment outside Pattern Lab
One module per pattern, atomic naming
import AtomsButton from 'atoms-button';
- PRO: wow, such atomic
- CON: your production components need to be named in atomic nomenclature, least portable option
Module loading options for runtime execution of patterns
We need to put something on the rendered pattern page to enable runtime execution of components, which is a must.
Bundle everything together on the pattern page with Webpack
This feels to sort of brute-force-y to me, but it could work.
- PRO: Webpack is familiar to most React devs
- CON: each generated pattern file would contain its own copy of every module and external dependency imported by its component-patterns. Not a dealbreaker. Is this somehow a pro also?
Load modules with systemjs or similar
I'm currently drawn to this one.
- PRO: allows async loading of modules, opening up the option of loading external dependencies from CDNs
- PRO: would keep generated code small
Metadata
Metadata
Assignees
Labels
No labels