@jcoreio/babel-plugin-transform-define

Babel plugin that replaces member expressions and typeof statements with strings

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
2372May 25, 2021Mar 19, 2016Minified + gzip package size for @jcoreio/babel-plugin-transform-define in KB

Readme

babel-plugin-transform-define

npm version

Compile time code replacement for babel similar to Webpack's DefinePlugin


Quick Start

npm install babel-plugin-transform-define

.babelrc

{
  "plugins": [
    ["transform-define", {
      "process.env.NODE_ENV": "production",
      "typeof window": "object"
    }]
  ]
}

.babelrc

{
  "plugins": [
    ["transform-define", "./path/to/config/file.js"]
  ]
}

Note: Paths are relative to `process.cwd()``

Reference Documentation

babel-plugin-transform-define can transform certain types of code as a babel transformation.

#####Identifiers

.babelrc

{
  "plugins": [
    ["transform-define", {
      "VERSION": "1.0.0",
    }]
  ]
}

Source Code

VERSION;

window.__MY_COMPANY__ = {
  version: VERSION
};

Output Code

"1.0.0";

window.__MY_COMPANY__ = {
  version: "1.0.0"
};

#####Member Expressions

.babelrc

{
  "plugins": [
    ["transform-define", {
      "process.env.NODE_ENV": "production"
    }]
  ]
}

Source Code

if (process.env.NODE_ENV === "production") {
  console.log(true);
}

Output Code

if (true) {
  console.log(true);
}

#####Unary Expressions

.babelrc

{
  "plugins": [
    ["transform-define", {
      "typeof window": "object"
    }]
  ]
}

Source Code

typeof window;
typeof window === "object";

Output Code

'object';
true;

License

MIT License

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.