4.0.1 • Published 5 years ago

bundledom v4.0.1

Weekly downloads
8
License
MIT
Repository
github
Last release
5 years ago

bundledom -- bundle assets of an html document

New in version 3: uses rollup for bundling, and still supports old-style bundling. New in version 4: resolve native relative imports, better async/await support.

Features

  • recursively concatenate scripts, styles, and linkrel=import
  • minify scripts and stylesheets
  • vendor autoprefixing of stylesheets, configurable through env, see browserslist
  • bundle everything in one single js file, or split in js / css.
  • prepend or append additional scripts, styles, or imports
  • exclude or ignore a tag by matching a url substring new in version 1.8.0: or a minimatch pattern with wildcard (see example below)
  • modify the DOM and outputs html
  • downloads remote scripts or stylesheets with whitelist (new in 1.7.0)
  • allows custom asynchronous DOM modifications (new in 1.6.0)
  • any kind of modules are supported, thanks to rollup
  • relative imports can be resolved using modules option.

Install

npm install -g bundledom

Usage

This saves modified html file, and styles are bundled into js file:

bundledom
--html bundles/index.html
--js /bundles/index.js
-x jquery.js -x moment.js -i index.js
--prepend '/js/custom-elements.js'
public/index.html

This saves styles separately:

bundledom
--html bundles/index.html
--css /bundles/index.css
--js /bundles/index.js
--exclude jquery.js
--prepend '/js/custom-elements.js'
public/index.html

This does not compress files, and specifies root dir

bundledom
--concatenate
--html bundles/index.html
--css /bundles/index.css
--js /bundles/index.js
--exclude jquery.js
--prepend '/js/custom-elements.js'
--root public
public/templates/index.html

A tool to bundle a bunch of files:

bundledom-all
  --filter "**/excluded-*.*"
  --common common.html
  --suffix 1.0.0
  "templates/*.html"

it bundles common files then processes all files matching pattern and put everything with suffixes in a bundles/ directory.

See bundledom-all -h for more command-line options.

Paths are relative to the input file path.

API

bundledom(path, opts, cb)

where path is the path of the html file to process, and opts has these properties:

  • exclude: array of matched strings
  • ignore: array of matched strings
  • append: array of strings
  • prepend: array of strings
  • js: path relative to html file
  • css: path relative to html file
  • html: path relative to root
  • root: absolute mount path, defaults to current directory
  • custom: function(dom, opts, data) {} returning a promise
  • remotes: list of allowed remote domains to download from
  • modules: the mount path for resolving node_modules (/modules/xxx becomes node_modules/xxx/index.js)

Strings are matched simply by searching a substring.

Tags without src or href attributes can be excluded or ignored by passing a dot ".", otherwise they are bundled.

Omitting js, css options skips the insertion of the corresponding tag in the html document.

If cb is omitted, returns a promise.

Returns an object with following properties:

  • js, css, html: the resulting js, css, html
  • scripts, stylesheets, imports: the lists of processed files

Help

bundledom --help

License

MIT, see LICENSE file.

4.0.1

5 years ago

4.0.0-1

5 years ago

4.0.0

5 years ago

4.0.0-beta.3

5 years ago

4.0.0-beta.2

5 years ago

4.0.0-beta.1

5 years ago

3.2.1

6 years ago

3.2.0

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.3

6 years ago

2.6.1

6 years ago

2.6.2

6 years ago

3.0.2

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.6.0

6 years ago

2.5.0

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.8.1

9 years ago

1.8.0

9 years ago

1.7.5

9 years ago

1.7.4

9 years ago

1.7.3

9 years ago

1.7.2

9 years ago

1.7.1

9 years ago

1.7.0

9 years ago

1.6.5

9 years ago

1.6.4

9 years ago

1.6.3

9 years ago

1.6.2

9 years ago

1.6.1

9 years ago

1.6.0

9 years ago

1.5.2

9 years ago

1.5.1

9 years ago

1.5.0

9 years ago

1.4.1

9 years ago

1.4.0

9 years ago

1.3.3

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago