0.0.1 • Published 6 years ago

@scheul93/test v0.0.1

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

Skeletor Rollup Plugin

Build Status The purpose of this plugin is to bundle modules together using rollup.

This is a functioning plugin that can be installed as-is to a Skeletor-equipped project.

To learn more about Skeletor, go here.

Getting Started

After you have cloned this repository, run npm install in a terminal to install some necessary tools, including a testing framework (Jest) and a linter (ESLint).

Source Code

The primary source code for this sample plugin is located in the index.js file.

Running Tests

This sample plugin is pre-configured with the Jest testing framework and an example test.

From a terminal, run npm test. You should see one test pass and feel pleased.

Test code can be found in the index.test.js file.

Skeletor Plugin API

For a Skeletor plugin to function within the Skeletor ecosystem, it must expose a simple API that the Skeletor task runner will interact with. The method signatures of the API are as follows:

run(config)

The run() method executes a plugin's primary task,. It is the primary way (and, currently, the only way) that the Skeletor task runner interacts with a plugin.

Config Options

Example:

{
    bundles: [{
        entry: "source/js/main.js",
        dest: "dist/js/main-bundle.js",
        format: "es"
    }],
    rollupPlugins: [
        {
            module: require('rollup-plugin-babel'),
            config: {
                exclude: 'node_modules/**'   
            }
        },
        {
            module: require('rollup-plugin-node-resolve'),
            config: {
                browser: true
            }
        },
        {
            module: require('rollup-plugin-commonjs')
        }
    ]
}

bundles

Type: Object[]

A list of bundle config objects.

rollupPlugins (optional)

Type: Object[]

A list of rollup plugin configs. Note: Order of plugins does matter! Rollup plugins are executed from last to first.

Bundle Config Object

Example:

{
    bundles: [
        {
            entry: "source/js/main.js",
            dest: "dist/js/main-bundle.js",
            format: "es"
        },
        {
            entry: "source/js/formHandler.js",
            dest: "dist/js/formHandler-bundle.js",
            format: "es"
        }
    ]
}

entry

Type: String

Path to entry point for bundle. This path is from the root of the project.

dest

Type: String

Path to destination for bundle. This path is from the root of the project.

format (optional)

Type: String Default: es

The format that the bundle should be in. Other options include

amd – Asynchronous Module Definition, used with module loaders like RequireJS
cjs – CommonJS, suitable for Node and Browserify/Webpack
es – Keep the bundle as an ES module file
iife – A self-executing function, suitable for inclusion as a <script> tag. (If you want to create a bundle for your application, you probably want to use this, because it leads to smaller file sizes.)
umd – Universal Module Definition, works as amd, cjs and iife all in one
system – Native format of the SystemJS loader

^^ From rollup documentation

Rollup Plugin Config Object

Example:

{
    rollupPlugins: [
        {
            "module": require('rollup-plugin'),
            "pluginConfig": {}
        }
    ]
}

module

Type: NPM module

An rollup plugin npm module. Check out the list of rollup plugins for the possibilities.

pluginConfig (optional)

Type: Object Default: {}

A config object for the corresponding plugin. Check the module's documentation for configuration options.

Return Value

A Promise that resolves to a Status object.

The Status Object

The Status object is a simple Javascript Object for storing the current status of your plugin. The structure of this object is as follows:

Properties

status

Type: String

Possible Values: 'complete', 'error'

Contains the status of the plugin. If the plugin has completed successfully, the 'complete' value should be used. If an error was encountered during plugin execution, the 'error' value should be used.

message

Type: String

Contains any additional information regarding the status of the plugin. If the plugin executed successfully, this property could include information about what the plugin accomplished. If the plugin encountered an error, this property could include error details.

Required Add-Ins

rollup: A module bundler for JavaScript.