@sincronia/babel-plugin-remove-modules

Babel plugin that removes imports and exports from code

Usage no npm install needed!

<script type="module">
  import sincroniaBabelPluginRemoveModules from 'https://cdn.skypack.dev/@sincronia/babel-plugin-remove-modules';
</script>

README

@sincronia/babel-plugin-remove-modules

Overview

This Babel plugin is for stripping import/export statements from code. It is useful for allowing your source code to reference other files without actually importing them.

Installation

npm i -D @sincronia/babel-plugin-remove-modules

Usage

Add this plugin to your plugins section of your Babel configuration

import's

Imports get removed if there is no override in place.

import mod1 from "mod1";
import { test } from "mod2";

mod1.hello();
test.asdf();

becomes...

mod1.hello();
mod2.test.asdf();

export's

Exports always get removed as of now, but if there is need an override can be added.

export default function() {}
const test = "asdf";
export { test };

becomes...

function _temp() {}
const test = "asdf";

Tags

@keepModule

Putting a comment that contains @keepModule before an import statement will keep it from being removed

import module from "myModule";
//@keepModule
import moduleDos from "myModuleDos";

becomes...

//@keepModule
import moduleDos from "myModuleDos";

@expandModule

Putting a comment that contains @expandModule causes the variable names to be expanded out. Useful for in house modules contained in scopes.

//@expandModule
import { part1 } from "myModule";

part1.init();

becomes...

myModule.part1.init();

@moduleAlias

Putting a comment that contains @moduleAlias=__aliasName__ causes the variable names to be expanded out and renames the source module to be whatever you like. Needs to be used with the @expandModule tag.

//@expandModule @moduleAlias=notMyModule
import { part1 } from "myModule";

part1.init();

becomes...

notMyModule.part1.init();