1. grunt-rollup
Grunt plugin for rollup - next-generation ES6 module bundler
grunt-rollup
Package: grunt-rollup
Created by: chrisprice
Last modified: Sat, 18 Jun 2022 15:52:31 GMT
Version: 12.0.0
License: MIT
Downloads: 60,468
Repository: https://github.com/chrisprice/grunt-rollup

Install

npm install grunt-rollup
yarn add grunt-rollup

grunt-rollup

Build Status
Plugin size

Grunt plugin for rollup - next-generation ES6 module bundler

Getting Started

This plugin requires Grunt >=0.4.0 and node >=8.6.0.

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

 npm install grunt-rollup --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

 grunt.loadNpmTasks('grunt-rollup');

The "rollup" task

Overview

In your project's Gruntfile, add a section named rollup to the data object passed into grunt.initConfig().

 grunt.initConfig({
  rollup: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
});

Options

Supports all the options from rollup's JavaScript API.

Sourcemaps

A value of true for sourceMap will output the map to a file with the same name as the JavaScript with .map appended. A value of inline for sourceMap will inline the sourcemap into the source file.

Usage Examples

 grunt.initConfig({
  rollup: {
    options: {},
    files: {
      'dest/bundle.js': 'src/entry.js',
    },
  },
});

Usage with Plugins

 var babel = require('@rollup/plugin-babel').default;

grunt.initConfig({
  rollup: {
    options: {
      plugins: [
        babel({
          exclude: './node_modules/**'
        })
      ]
    },
    files: {
      'dest/bundle.js': 'src/entry.js',
    },
  },
});

Plugin getter

Some plugins are stateful and this doesn't play nice with multiple bundles.
For example the rollup-plugin-babel plugin keeps a track of used babel helpers, and passing the configured plugin only once will cause the helpers to leak from one bundle to another.
To prevent that, pass a function that returns an array of plugins, like this:

 var babel = require('rollup-plugin-babel');

grunt.initConfig({
  rollup: {
    options: {
      plugins: function() {
        return [
          babel({
            exclude: './node_modules/**'
          })
        ];
      }
    },
    files: {
      'dest/bundle.js': 'src/entry.js',
      'dest/bundle2.js': 'src/entry2.js',
    },
  },
});

This way the plugin will be refreshed for each bundle.

Contributing

Any contributions is welcomed. Make sure to read the contributing manual for more information.

Contributors

chrisprice
chrisprice
GMartigny
GMartigny
scythianfuego
scythianfuego

All contributions are valued, you can add yourself to this list (or request to be added) whatever your contribution is.

License

MIT

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin