Skip to content

Granular compress option #1031

Open
Open
@mmkal

Description

@mmkal

I think it'd be great to be able to do this:

package.json

{
  "name": "foo",                      // your package name
  "type": "module",
  "source": "src/foo.js",             // your source code
  "exports": {
    "require": "./dist/foo.cjs",      // used for require() in Node 12+
    "default": "./dist/foo.modern.js" // where to generate the modern bundle (see below)
  },
  "main": "./dist/foo.cjs",           // where to generate the CommonJS bundle
  "module": "./dist/foo.module.min.js",   // where to generate the ESM bundle
  // note the 'min' here 👇👇👇
  "unpkg": "./dist/foo.umd.min.js",       // where to generate the UMD bundle (also aliased as "umd:main")
  "scripts": {
    "build": "microbundle",           // compiles "source" to "main"/"module"/"unpkg"
    "dev": "microbundle watch"        // re-build when source files change
  }
}

Then expand the --compress option to allow a regex. So, if you run --compress min it's saying "Compress the outputs that contain the string min". In the above case, it'd only minify the module and unpkg outputs.

This'd be useful to allow node users to use unminified code but browser users to use minified etc. It could be made to be non-breaking by making --compress true and --compress false special cases to enable/disable all.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions