Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eight04/rollup-plugin-external-globals
Transform external imports into global variables like output.globals.
https://github.com/eight04/rollup-plugin-external-globals
rollup rollup-plugin
Last synced: 18 days ago
JSON representation
Transform external imports into global variables like output.globals.
- Host: GitHub
- URL: https://github.com/eight04/rollup-plugin-external-globals
- Owner: eight04
- License: mit
- Created: 2018-08-05T09:24:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-05T05:42:58.000Z (8 months ago)
- Last Synced: 2024-05-10T07:02:07.221Z (7 months ago)
- Topics: rollup, rollup-plugin
- Language: JavaScript
- Size: 265 KB
- Stars: 93
- Watchers: 3
- Forks: 15
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - external-globals - Replace imported bindings with a global variable. (Plugins / Modules)
README
rollup-plugin-external-globals
==============================[![test](https://github.com/eight04/rollup-plugin-external-globals/actions/workflows/test.yml/badge.svg)](https://github.com/eight04/rollup-plugin-external-globals/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/eight04/rollup-plugin-external-globals/branch/master/graph/badge.svg)](https://codecov.io/gh/eight04/rollup-plugin-external-globals)
[![install size](https://packagephobia.now.sh/badge?p=rollup-plugin-external-globals)](https://packagephobia.now.sh/result?p=rollup-plugin-external-globals)Transform external imports into global variables like Rollup's `output.globals` option. See [rollup/rollup#2374](https://github.com/rollup/rollup/issues/2374)
Installation
------------```
npm install -D rollup-plugin-external-globals
```Usage
-----```js
import externalGlobals from "rollup-plugin-external-globals";export default {
input: ["entry.js"],
output: {
dir: "dist",
format: "es"
},
plugins: [
externalGlobals({
jquery: "$"
})
]
};
```The above config transforms
```js
import jq from "jquery";console.log(jq(".test"));
```into
```js
console.log($(".test"));
```It also transforms dynamic import:
```js
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.
API
----This module exports a single function.
### createPlugin
```js
const plugin = createPlugin(
globals: Object | Function,
{
include?: ReadonlyArray | string | RegExp | null,
exclude?: ReadonlyArray | string | RegExp | null,
dynamicWrapper?: Function,
constBindings?: Boolean
} = {}
);
````globals` is a `moduleId`/`variableName` map. For example, to map `jquery` module to `$`:
```js
const globals = {
jquery: "$"
}
```or provide a function that takes the `moduleId` and returns the `variableName`.
```js
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.
```js
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.
Changelog
---------* 0.13.0 (Nov 20, 2024)
- Change: update include/exclude signature
* 0.12.1 (Nov 15, 2024)
- Fix: there is no debug hook in rollup 2.
* 0.12.0 (Aug 11, 2024)
- Change: throw on export all declaration.
- Change: define variables with `var`, add `constBindings` option to use `const` instead.
- Change: resolve identifiers as external.* 0.11.0 (Jun 27, 2024)
- Fix: local variable conflict in export declaration.
- Change: don't throw on parse error.* 0.10.0 (Apr 5, 2024)
- Add: `exports` field in package.json to export typescript declaration.
* 0.9.2 (Jan 21, 2024)
- Fix: support rollup 4.9.6.
* 0.9.1 (Nov 19, 2023)
- Fix: type declaration.
* 0.9.0 (Oct 28, 2023)
- **Breaking: bump to rollup@4.**
* 0.8.0 (May 12, 2023)
- Bump dependencies. Update to [email protected]
* 0.7.2 (mar 9, 2023)
- Add: typescript declaration.
* 0.7.0 (Nov 21, 2022)
- **Breaking: bump to rollup@3.**
* 0.6.1 (Oct 21, 2020)
- Fix: add an extra assignment when exporting globals.
* 0.6.0 (Aug 14, 2020)
- **Breaking: bump to rollup@2.**
* 0.5.0 (Dec 8, 2019)
- Add: `dynamicWrapper` option.
- Add: now `globals` can be a function.
- Bump dependencies/peer dependencies.* 0.4.0 (Sep 24, 2019)
- Add: transform dynamic imports i.e. `import("foo")` => `Promise.resolve(FOO)`.
* 0.3.1 (Jun 6, 2019)
- Fix: all export-from statements are incorrectly transformed.
- Bump dependencies.* 0.3.0 (Mar 25, 2019)
- Fix: temporary variable name conflicts.
- **Breaking: transform virtual modules.** Now the plugin transforms proxy modules generated by commonjs plugin.
- Bump dependencies.* 0.2.1 (Oct 2, 2018)
- Fix: don't skip export statement.
* 0.2.0 (Sep 12, 2018)
- Change: use `transform` hook.
- Add: rewrite conflicted variable names.
- Add: handle export from.* 0.1.0 (Aug 5, 2018)
- Initial release.