Skip to content

Latest commit

 

History

History
101 lines (77 loc) · 3.71 KB

README.md

File metadata and controls

101 lines (77 loc) · 3.71 KB

rollup-plugin-strip-exports

Remove unwanted exports from your code.

ci status npm package license MIT commit style angular semantic-release Dependabot Status

rollup-plugin-strip-exports is intended to remove unwanted exports from your entry file. It does not check if an export is imported by another file, the intention is to just strip exports from the entry file. The primary use-case for this is when using iife, as exports are added to the global scope and this is often not useful if you are bundling everything together, as you have no purpose for using those exports.

As of rollup version 1.26.0 not providing a name for iife bundles will no longer cause an error (just a warning) and will not pollute the global scope. However this plugin is still useful for a few reasons.

  1. The iife will still have the exports assign to a variable which it returns. This could cause confusion when a developer is reading the rollup output, so it is cleaner to just not export anything (in my opinion).
  2. You may want to remove exports for a different reason.

Installation

yarn add rollup-plugin-strip-exports --dev
# or
npm install rollup-plugin-strip-exports --save-dev

Usage

// rollup.config.js
import stripExports from 'rollup-plugin-strip-exports';

export default {
  input: 'source/index.js',
  output: {
    file: 'build/index.js',
    format: 'iife'
  },
  plugins: [
    stripExports({ /* options */ })
  ]
};

Functionality

Function definitions or variable declerations or any other named value will be kept but the export stripped as code in the same file may use them. However if they are not used and you have tree-shaking turned on, then they will be removed anyway.

// input.js
export const variable = 6;

export function add(a, b) {
  return a + b;
}

console.log(add(variable, 4));
// output.js
const variable = 6;

function add(a, b) {
  return a + b;
}

console.log(add(variable, 4));

Exported default literals will be removed, as they serve no purpose without an export.

// input.js
export default 'literal';
// output.js

Options

None of the following options are required.

name description type default
sourceMap Whether you are using sourceMaps or not. Boolean true

LICENSE | CHANGELOG | ISSUES