@syncrona/babel-plugin-remove-modules
v1.0.0
Published
Babel plugin for SyncroNow AI that strips ES import/export statements, letting ServiceNow source files reference each other without a module loader.
Readme
@syncrona/babel-plugin-remove-modules
| |
|
|
|
|
|:--:|:--:|:--:|:--:|:--:|
Overview
SyncroNow AI is the ServiceNow scoped-application toolchain behind the syncrona CLI. This package is not a sync.config.js build plugin: it is a plain Babel plugin, listed in the Babel options you pass to @syncrona/babel-plugin.
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 @syncrona/babel-plugin-remove-modulesUsage
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();