Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ko-yelie/gulp-rollup-each
Gulp plugin for Rollup. Yet another gulp-rollup plugin that allows to input/output multiple files.
https://github.com/ko-yelie/gulp-rollup-each
gulp-plugins rollup static-site
Last synced: 16 days ago
JSON representation
Gulp plugin for Rollup. Yet another gulp-rollup plugin that allows to input/output multiple files.
- Host: GitHub
- URL: https://github.com/ko-yelie/gulp-rollup-each
- Owner: ko-yelie
- License: mit
- Created: 2017-01-22T17:52:53.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-08T17:29:31.000Z (almost 2 years ago)
- Last Synced: 2024-09-20T05:13:24.166Z (about 2 months ago)
- Topics: gulp-plugins, rollup, static-site
- Language: JavaScript
- Homepage:
- Size: 821 KB
- Stars: 9
- Watchers: 2
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gulp-rollup-each
Gulp plugin for [Rollup](https://rollupjs.org).
Yet another gulp-rollup plugin that allows to input/output multiple files for static site.## Installation
[npm](https://www.npmjs.com/package/gulp-rollup-each)
```sh
npm i gulp-rollup-each
```## Usage
```js
const gulp = require('gulp')
const rollupEach = require('gulp-rollup-each')function scripts () {
return gulp
.src([
'src/**/*.js',
'!src/**/_*' // exclude modules
])
.pipe(
rollupEach({
output: {
// outputOptions
format: 'iife'
}
})
)
.pipe(gulp.dest('dist'))
}
```with sourcemaps and Buble
```js
const gulp = require('gulp')
const sourcemaps = require('gulp-sourcemaps')
const rollupEach = require('gulp-rollup-each')
const buble = require('@rollup/plugin-buble')function scripts () {
return gulp
.src([
'src/**/*.js',
'!src/**/_*' // exclude modules
])
.pipe(sourcemaps.init())
.pipe(
rollupEach(
{
// inputOptions
external: ['jquery'],
plugins: [
buble({
target: {
ie: 11
}
})
],
isCache: true // enable Rollup cache
},
{
// outputOptions
format: 'iife',
globals: {
jquery: 'jQuery'
}
}
)
)
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist'))
}
```## Options
### `rollupEach(inputOptions [[, outputOptions], rollup])`
#### `inputOptions`
The 1st argument is the same object as [`inputOptions`](https://rollupjs.org/guide/en#inputoptions).
However, **the `input` option is the file specified in `gulp.src()`**, so it can not be specified as gulp-rollup-each option.If you want to enable the Rollup [`cache`](https://rollupjs.org/guide/en#cache), set `isCache` option to `true`.
```js
function scripts () {
return gulp
.src(['src/**/*.js'])
.pipe(
rollupEach(
{
isCache: true // enable Rollup cache
},
{
format: 'iife'
}
)
)
.pipe(gulp.dest('dist'))
}
```#### `outputOptions`
The 2nd argument is the same object as [`outputOptions`](https://rollupjs.org/guide/en#outputoptions).
If you omit the 2nd argument, `output` in the 1st argument changes to `outputOptions`.```js
function scripts () {
return gulp
.src(['src/**/*.js'])
.pipe(
rollupEach({
output: {
// outputOptions
format: 'iife'
}
})
)
.pipe(gulp.dest('dist'))
}
```You can also pass a function that returns rollup options object as an argument. The function will receive [vinyl](https://github.com/gulpjs/vinyl) file object.
```js
const path = require('path')
const gulp = require('gulp')
const rollupEach = require('gulp-rollup-each')function scripts () {
return gulp
.src(['src/**/*.js'])
.pipe(
rollupEach(
{
external: [/* ... */],
plugins: [/* ... */]
},
file => {
return {
format: 'umd',
name: path.basename(file.path, '.js')
}
}
)
)
.pipe(gulp.dest('dist'))
}
```#### `rollup`
You can specify the 3rd argument for replacing `rollup` object by your dependency. It is useful if you want to use a new version of rollup than gulp-rollup-each is using.
```js
function scripts () {
return gulp
.src(['src/**/*.js'])
.pipe(
rollupEach(
{},
{
format: 'iife'
},// Passing rollup object
require('rollup')
)
)
.pipe(gulp.dest('dist'))
}
```## License
MIT