Remove unwanted exports from your code.
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.
- 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).
- You may want to remove exports for a different reason.
yarn add rollup-plugin-strip-exports --dev
# or
npm install rollup-plugin-strip-exports --save-dev
// 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 */ })
]
};
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
None of the following options are required.
name | description | type | default |
---|---|---|---|
sourceMap | Whether you are using sourceMaps or not. | Boolean |
true |