eight04/rollup-plugin-external-globals(opens in a new tab)
Language: JavaScript
Transform external imports into global variables like output.globals.
- stars
- 127
- watchers
- 2
- forks
- 21
- open issues
- 1
- Last updated
- 11/20/2024
Language: JavaScript
Transform external imports into global variables like output.globals.
Transform external imports into global variables like Rollup's output.globals option. See rollup/rollup#2374
npm install -D rollup-plugin-external-globals
import externalGlobals from "rollup-plugin-external-globals"; export default { input: ["entry.js"], output: { dir: "dist", format: "es" }, plugins: [ externalGlobals({ jquery: "$" }) ] };
The above config transforms
import jq from "jquery"; console.log(jq(".test"));
into
console.log($(".test"));
It also transforms dynamic import:
import("jquery") .then($ => { $ = $.default || $; console.log($(".test")); }); // transformed Promise.resolve($) .then($ => { $ = $.default || $; console.log($(".test")); });
Note: when using dynamic import, you should notice that in ES module, the resolved object is aways a module namespace, but the global variable might be not.
Note: this plugin only works with import/export syntax. If you are using a module loader transformer e.g.
rollup-plugin-commonjs, you have to put this plugin after the transformer plugin.
This module exports a single function.
const plugin = createPlugin( globals: Object | Function, { include?: ReadonlyArray<string | RegExp> | string | RegExp | null, exclude?: ReadonlyArray<string | RegExp> | string | RegExp | null, dynamicWrapper?: Function, constBindings?: Boolean } = {} );
globals is a moduleId/variableName map. For example, to map jquery module to $:
const globals = { jquery: "$" }
or provide a function that takes the moduleId and returns the variableName.
const globals = (id) => { if (id === "jquery") { return "$"; } }
include is a valid picomatch glob pattern, or array of patterns. If defined, only matched files would be transformed.
exclude is a valid picomatch glob pattern, or array of patterns. Matched files would not be transformed.
dynamicWrapper is used to specify dynamic imports. Below is the default.
const dynamicWrapper = (id) => { return `Promise.resolve(${id})`; }
Virtual modules are always transformed.
constBindings is a boolean. If true, the plugin will use const instead of var to declare the variable. This usually happens when you try to re-export the global variable. Default is false.
0.13.0 (Nov 20, 2024)
0.12.1 (Nov 15, 2024)
0.12.0 (Aug 11, 2024)
var, add constBindings option to use const instead.0.11.0 (Jun 27, 2024)
0.10.0 (Apr 5, 2024)
exports field in package.json to export typescript declaration.0.9.2 (Jan 21, 2024)
0.9.1 (Nov 19, 2023)
0.9.0 (Oct 28, 2023)
0.8.0 (May 12, 2023)
0.7.2 (mar 9, 2023)
0.7.0 (Nov 21, 2022)
0.6.1 (Oct 21, 2020)
0.6.0 (Aug 14, 2020)
0.5.0 (Dec 8, 2019)
dynamicWrapper option.globals can be a function.0.4.0 (Sep 24, 2019)
import("foo") => Promise.resolve(FOO).0.3.1 (Jun 6, 2019)
0.3.0 (Mar 25, 2019)
0.2.1 (Oct 2, 2018)
0.2.0 (Sep 12, 2018)
transform hook.0.1.0 (Aug 5, 2018)