parcel-plugin-elm-bundle

1.0.3 • Public • Published

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.

Package Sidebar

Install

npm i parcel-plugin-elm-bundle

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

5.77 kB

Total Files

5

Last publish

Collaborators

  • ulisses-alves