New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@webmodule/bundle

Package Overview
Dependencies
Maintainers
0
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@webmodule/bundle

Bundle and transform javascript files, stylesheets, html imports and update DOM document

latest
Source
npmnpm
Version
5.8.2
Version published
Maintainers
0
Created
Source

@webmodule/bundle -- bundle assets of an html document

Features

  • recursively concatenate scripts, styles, and link[rel=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 @webmodule/bundle

Usage

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

webmodule-bundle
--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:

webmodule-bundle
--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

webmodule-bundle
--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:

webmodule-bundle-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 webmodule-bundle-all -h for more command-line options.

Paths are relative to the input file path.

API

webmoduleBundle(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
  • modulesPrefix: the mount path for resolving node_modules ( becomes /node_modules/xxx/index.js), defaults to "/".
  • modulesRoot: where node modules are to be found. Defaults to ".".
  • assets: if set, copy stylesheets assets to this path relative to root.
  • analyze: boolean, get information about bundle

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, assets, imports: the lists of processed files

Help

webmodule-bundle --help

License

MIT, see LICENSE file.

Keywords

bundle

FAQs

Package last updated on 16 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts