Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eight04/rollup-plugin-iife
Convert ES modules into IIFEs.
https://github.com/eight04/rollup-plugin-iife
iife rollup rollup-plugin
Last synced: about 2 months ago
JSON representation
Convert ES modules into IIFEs.
- Host: GitHub
- URL: https://github.com/eight04/rollup-plugin-iife
- Owner: eight04
- License: mit
- Created: 2018-08-28T12:38:43.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-16T08:34:26.000Z (10 months ago)
- Last Synced: 2024-05-17T12:20:31.273Z (7 months ago)
- Topics: iife, rollup, rollup-plugin
- Language: JavaScript
- Size: 412 KB
- Stars: 41
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - iife - Convert ES modules to Immediately Invoked Function Expressions. (Plugins / Output)
README
rollup-plugin-iife
==================[![Build Status](https://travis-ci.com/eight04/rollup-plugin-iife.svg?branch=master)](https://travis-ci.com/eight04/rollup-plugin-iife)
[![codecov](https://codecov.io/gh/eight04/rollup-plugin-iife/branch/master/graph/badge.svg)](https://codecov.io/gh/eight04/rollup-plugin-iife)
[![install size](https://packagephobia.now.sh/badge?p=rollup-plugin-iife)](https://packagephobia.now.sh/result?p=rollup-plugin-iife)Currently ([email protected]), [rollup doesn't support code splitting with IIFE output](https://github.com/rollup/rollup/issues/2072). This plugin would transform ES module output into IIFEs.
Installation
------------```
npm install -D rollup-plugin-iife
```Usage
-----```js
import iife from "rollup-plugin-iife";export default {
input: ["entry.js", "entry2.js"],
output: {
dir: "dist",
format: "es",
globals: {
vue: "Vue"
}
},
externals: ["vue"],
plugins: [iife()]
};
```Define global variables for external imports
--------------------------------------------You can define global variables with `output.globals` just like before. You can also specify them with the plugin option `names`.
The plugin would first lookup `names` option then `output.globals`.
API
----This module exports a single function.
### iife
```js
iife({
names?: Function|Object,
sourcemap?: Boolean,
prefix?: String,
strict?: Boolean
}) => PluginInstance
```Create the plugin instance.
If `names` is a function, the signature is:
```js
(moduleId: String) => globalVariableName: String
```If `names` is an object, it is a `moduleId`/`globalVariableName` map. `moduleId` can be relative to the output folder (e.g. `./entry.js`), the plugin would resolve it to the absolute path.
If the plugin can't find a proper variable name, it would generate one according to its filename with [camelcase](https://www.npmjs.com/package/camelcase).
If `sourcemap` is false then don't generate the sourcemap. Default: `true`.
When `prefix` is defined, it will be used to prefix auto-generated variable names. It doesn't prefix names defined in the `names` option. It doesn't prefix external imports.
If `strict` is true then add `'use strict';` directive to the IIFE. Default: `true`.
Related projects
----------------* [rollup-plugin-external-globals](https://www.npmjs.com/package/rollup-plugin-external-globals) - transform imports into global variables *at transform hook*.
* [amd-script](https://www.npmjs.com/package/amd-script) - a small AMD module cache that would work with AMD module chunks generated by Rollup. You have to load modules manually (e.g. load modules through `` tags).
* [rollup-plugin-loadz0r](https://github.com/surma/rollup-plugin-loadz0r) - attach each chunk with a module loader so you don't have to include a module loader at runtime. Support workers.Changelog
---------* 0.7.1 (Feb 16, 2024)
- Relax peer dependency. Support rollup 4.
* 0.7.0 (Oct 20, 2022)
- Breaking: bump to rollup@3.
- Change: throw an error if `output.dir` is not defined.* 0.6.0 (Feb 11, 2022)
- Add: handle `import.meta.url`. The plugin also throws and error if it sees unconverted `import.meta`.
* 0.5.0 (Feb 18, 2021)
- Now `'use strict';` directive is inserted by default.
- Add: `strict` option.* 0.4.0 (Dec 28, 2020)
- Fix: plugin name.
- **Bump dependencies. Update to [email protected], replace camelcase with lodash/camelCase.*** 0.3.1 (Feb 8, 2020)
- Fix: prefix local imports.
* 0.3.0 (Aug 14, 2019)
- Bump dependencies. Update to [email protected]. Define default export with `var`.
* 0.2.1 (Jun 23, 2019)
- Fix: handle empty chunks.
* 0.2.0 (Jan 26, 2019)
- Breaking: bump rollup version to 1.x.
* 0.1.2 (Jan 25, 2019)
- Add: `prefix` option.
* 0.1.1 (Sep 28, 2018)
- Add: support `output.globals` option.
* 0.1.0 (Aug 28, 2018)
- First release.