A wrapper for rollup that produces a stream of Vinyl objects.
This is a native ES module.
This example shows how to write a script which performs a vinyl-rollup based build.
The build
export of this script could also be used as a gulp task.
npm i -D rollup vinyl-rollup vinyl-fs
Create build.mjs
:
#!/usr/bin/env node
import {pipeline} from 'stream';
import {promisify} from 'util';
import vinylFS from 'vinyl-fs';
import vinylRollup from 'vinyl-rollup';
import rollupConfig from './rollup.config.js';
export const build = () => promisify(pipeline)(
vinylRollup({
rollup: rollupConfig,
copyModules: true,
modulePath: 'node_modules'
}),
vinylFS.dest('build', {sourcemaps: '.'})
);
build().catch(error => {
console.error(error);
process.exit(1);
});
Create rollup.config.js
for your application. See the rollup guide.
This object is used as the rollup configuration. If rollup.output.file
is missing
it will be set to the value of rollup.input
. If rollup.output.vinylOptions
is set
it will be removed from the rollup output config and used as the default vinyl object
options for the bundle output. This does not effect creation vinyl objects created for
the copyModules
option.
By default this module will merge streams including package.json
and license files
from any external module that provided sources to the bundle. Setting copyModules
to true
will cause all files from these modules to be added to the stream, setting
copyModules
to false
will disable copying any original files from bundled modules.
This option only has an effect if rollup is able to resolve 'external' modules. See
rollup-plugin-node-resolve
or rollup-plugin-babel
with babel-plugin-bare-import-rewrite
.
Default value: 'node_modules'
.
This is used by copyModules
. Each bundled source is checked against this path so the
list of included external modules can be calculated.