Skip to content

ulisses-alves/parcel-plugin-elm-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

parcel-plugin-elm-bundle

Parcel plugin for bundling multiple Elm applications.

Use-case

Let's say you have two Elm application modules, A and B; and both will be imported and initialized in a parent application:

./index.js

import { Elm as ElmA } from './elm/A.elm'
import { Elm as ElmB } from './elm/B.elm'

ElmA.A.init(...)
ElmB.B.init(...)

Using Parcel's native Elm bundler, results into A and B being compiled indepently, so all modules shared between them will get bundled twice, thus producing a much larger output in comparison to:

elm make ./elm/A.elm ./elm/B.elm --output=bundle.js

This plugin provides a way combine the outputs of A and B by defining a module bundle file (.elmb): ./apps.elmb

{
  "modules": [
    "./elm/A.elm",
    "./elm/B.elm"
  ]
}

Now instead of importing the modules directly, the bundle definition file can be imported instead:

import { A, B } from './apps.elmb'

A.init(...)
B.init(...)

Future

The expectation is that Parcel will eventually provide a built-in way to achieve the same results as this plugin, thus making it obsolete. In the mean time, pull requests, bug reports and suggestions are very much welcomed.

About

Parcel plugin for bundling multiple Elm applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published