babel-plugin-filter-imports

A babel transform for filtering out imports

Usage no npm install needed!

<script type="module">
  import babelPluginFilterImports from 'https://cdn.skypack.dev/babel-plugin-filter-imports';
</script>

README

babel-plugin-filter-imports

Build Status npm Greenkeeper badge

This babel plugin is used to removed references to imports within a module. This can be useful for removing debugging statements when doing a production build of your code. It is often used in conjunction with other tools like Uglify that perform dead code elimination.

Installation

$ yarn add --dev babel-plugin-filter-imports

This plugin is for Babel 7. If you need to support:

  • Babel 6 use the babel6 branch
  • Babel 5 use the v0.2.x branch

Example

Given the .babelrc

{
  "plugins": [["filter-imports", {
    "imports": {
      "debugging-tools": [ "warn" ]
    }
  }]]
}

the module

import { warn } from 'debugging-tools';

function join(args, sep) {
  if (arguments.length > 2) {
    warn("join expects at most 2 arguments");
  }
  return args.join(sep);
}

will be transformed to

function join(args, sep) {
  if (arguments.length > 2) {
  }
  return args.join(sep);
}

Configuration

  • options[keepImports] [Boolean]: An flag that indicates imports removal from header.
  • options[imports] [Object]: An object whose keys are names of modules.
  • options[imports][moduleName] [String]: An array of names of imports from moduleName to be removed. You can include 'default' for default export and '*' for a namespace export.

Upgrade to 1.x/2.x

There were breaking changes in the plugin configuration, you must update it to work correctly.

Before 1.x
{
  "plugins": [["filter-imports", {
    "debugging-tools": [ "warn" ]
  }]]
}
After
{
  "plugins": [["filter-imports", {
    "imports": {
      "debugging-tools": [ "warn" ]
    }
  }]]
}