bilix v0.0.1
Introduction
Running command bili it will compile src/index.js to:
dist/[name].common.js # commonjs formatThe [name] is name in package.json or index as fallback.
You can also generate UMD bundle and compress it with: bili --format umd --compress, then you get:
dist/[name].js          # umd format
dist/[name].min.js      # umd format and compressed
dist/[name].min.js.map  # sourcemapNot enough? You can have them all in one command bili --format cjs --format es --format umd --compress:
dist/[name].js          # umd format
dist/[name].min.js      # umd format and compressed
dist/[name].min.js.map  # sourcemap
dist/[name].common.js   # commonjs format
dist/[name].es.js       # es-modules formatNote: In UMD format all third-party libraries will be bundled in dist files, while in other formats they are excluded.
Install
npm install -g biliDive 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 {
  entry: 'src/main.js',
  plugins: [ buble() ],
  targets: [
    { dest: 'dist/bundle.cjs.js', format: 'cjs' },
    { dest: 'dist/bundle.umd.js', format: 'umd' },
    { dest: '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 --format umd --format es --compressEverything 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"],
    "compress": true // note: it only compresses umd bundle and will generate sourcemaps
  }
}License
MIT © EGOIST
8 years ago