babel-plugin-transform-cup-globals
raw JSON → 1.0.2 verified Sat Apr 25 auth: no javascript maintenance
Babel plugin that transforms global references for create-universal-package (CUP). At version 1.0.2 (last released in 2019), it is in maintenance mode with no active development. Converts environment-specific globals (e.g., `__BROWSER__`, `__SERVER__`) to boolean literals at compile time. Compared to general-purpose Babel macros or DefinePlugin, this plugin is tightly coupled to CUP and may not work with newer Babel versions (v7+). Requires Node >=6 and a Babel preset or plugin pipeline that invokes it before other transforms.
Common errors
error Error: Cannot find module 'babel-plugin-transform-cup-globals' ↓
cause Plugin not installed or not in node_modules.
fix
Run npm install --save-dev babel-plugin-transform-cup-globals
error TypeError: this.plugin is not a function ↓
cause Plugin is not properly registered in Babel config.
fix
Ensure plugin is listed as a string in the plugins array, e.g., "plugins": ["transform-cup-globals"]
Warnings
gotcha Plugin is designed specifically for create-universal-package (CUP). It may not work correctly in other Babel setups, especially if custom global definitions are not provided. ↓
fix If not using CUP, consider alternatives like babel-plugin-transform-define or setting environment-specific globals via DefinePlugin.
breaking Incompatible with Babel 7+ if the plugin explicitly checks for Babel 6 API. The last release predates Babel 7 and may rely on deprecated APIs. ↓
fix Use a newer Babel 6 environment or adapt the plugin source code for Babel 7+.
Install
npm install babel-plugin-transform-cup-globals yarn add babel-plugin-transform-cup-globals pnpm add babel-plugin-transform-cup-globals Imports
- default (plugin) wrong
import plugin from 'babel-plugin-transform-cup-globals';correctmodule.exports = require('babel-plugin-transform-cup-globals'); // or in .babelrc: "plugins": ["transform-cup-globals"] - plugin reference in Babel config wrong
{ "plugins": [["babel-plugin-transform-cup-globals", "some-option"]] }correct// .babelrc { "plugins": ["transform-cup-globals"] }
Quickstart
// Install: npm install --save-dev babel-plugin-transform-cup-globals
// Then add to .babelrc:
{
"plugins": ["transform-cup-globals"]
}
// Input:
const isBrowser = __BROWSER__;
// Output:
const isBrowser = true; // or false, depending on environment