bili
Schweizer Armeemesser for your JavaScript libraries.
Last updated 13 days ago by rem .
MIT · Repository · Bugs · Original npm · Tarball
$ cnpm install bili 
SYNC missed versions from official npm registry.

2017-07-08 12 04 59

NPM version NPM downloads donate

Introduction

Running command bili it will compile src/index.js to:

dist/[name].common.js # commonjs format

The [name] is name in package.json or index as fallback.

You can also generate UMD bundle and minify it with: bili --format umd,umd-min, then you get:

dist/[name].js          # umd format
dist/[name].min.js      # minified umd format
dist/[name].min.js.map  # minified file will automatically get sourcemaps

Not enough? You can have them all in one command bili --format cjs,es,umd,umd-min:

dist/[name].js          # umd format
dist/[name].min.js      # umd format and minified
dist/[name].min.js.map  # sourcemap for umd format
dist/[name].common.js   # commonjs format
dist/[name].es.js       # es-modules format

Note: In UMD format all third-party libraries will be bundled in dist files, while in other formats they are excluded.

Install

npm install -g bili
# prefer local install
npm install bili --save-dev

Dive into the documentation if you are ready to bundle!

FAQ

Why not use Rollup's targets option?

As per Rollup wiki:

import buble from 'rollup-plugin-buble'

export default {
  input: 'src/main.js',
  plugins: [ buble() ],
  output: [
    { file: 'dist/bundle.cjs.js', format: 'cjs' },
    { file: 'dist/bundle.umd.js', format: 'umd' },
    { file: 'dist/bundle.es.js', format: 'es' },
  ]
}

You can use an array as targets to generate bundles in multiple formats, which is really neat and helpful.

However, you can't apply different plugins to different target, which means you still need more config files. For example, add rollup-plugin-node-resolve and rollup-plugin-commonjs in umd build, and what about minification? It's yet another config file.

While in bili, it's as simple as running:

bili src/main.js --format cjs,umd,es,umd-min

Everything can be done via CLI options, if it's too long to read, you can keep them in bili field in package.json:

{
  "bili": {
    "entry": "src/main.js",
    "format": ["cjs", "umd", "es", "umd-min"]
  }
}

License

MIT © EGOIST

Maintainers (1)
Downloads
Today 0
This Week 0
This Month 40
Last Day 0
Last Week 39
Last Month 367
Dev Dependencies (10)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |