0.0.1 • Published 1 year ago

babel-plugin-evaluate-modules v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

babel-plugin-evaluate-modules

npm check

A babel plugin to evaluate modules at build-time.

Why?

I wanted to evaluate some functions and calculations in build process that didn't need to run at runtime, to remove the modules themselves from the bundle to reduce its size.

Setup

npm install babel-plugin-evaluate-modules

Usage

Evaluate modules in node_modules

// babel.config.js
module.exports = {
  plugins: [["babel-plugin-evaluate-modules", { name: "polished" }]],
};

// App.js
import { rgba } from "polished";

const val = "blue";
const obj = {
  color: "#123456",
  red: "red",
};

const a = rgba(val, 0.5); // const a = "rgba(0,0,255,0.5)";
const b = rgba(obj["color"], 0.5); // const b = "rgba(18,52,86,0.5)";
const c = rgba(obj.red, 0.5); // const c = "rgba(255,0,0,0.5)";

Evaluate local modules

// babel.config.js
module.exports = {
  plugins: [["babel-plugin-evaluate-modules", { name: /\/constants\// }]],
};

// constants/foo.js
export const foo = 2 * 7;
export const bar = "bar" + "baz";

// App.js
import { foo, bar } from "./constants/foo.js";
const fooVal = foo; // const fooVal = 14;
const barVal = bar; // const barVal = "barbaz";

Contribute

All contributions are welcome. If you find a problem, feel free to create an issue or a PR.

Making a Pull Request

  1. Clone this repo.
  2. Run npm install.
  3. Commit your fix.
  4. Add tests to cover your fix.
  5. Make a PR and confirm all the CI checks passed.