Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/schibsted-tech-polska/gardr-builder

This module and command line tool allows for fast and easy building of a Garðr project with optional plugins.
https://github.com/schibsted-tech-polska/gardr-builder

Last synced: 3 days ago
JSON representation

This module and command line tool allows for fast and easy building of a Garðr project with optional plugins.

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/Schibsted-Tech-Polska/gardr-builder.svg)](https://travis-ci.org/Schibsted-Tech-Polska/gardr-builder) [![Coverage Status](https://coveralls.io/repos/Schibsted-Tech-Polska/gardr-builder/badge.svg)](https://coveralls.io/r/Schibsted-Tech-Polska/gardr-builder)

# Garðr Builder

Created for fast and easy building of a [Garðr](http://gardr.github.io/) project with optional plugins.
It can be used as a node module or command line utility (CLI).

## Prequisitions

* Node.js version 0.12.0 or higher
* npm in version 2.0.0 or higher (optional for CLI)

## Installation

For CLI, clone this repository into whatever directory you like and run ```npm install``` command inside cloned directory.

For node module, install it with ```npm install gardr-builder```.

## Node Module Usage

#### Example

```javascript
var gardrBuilder = require('gardr-builder')(/* config */);
gardrBuilder.host({
minify: true,
plugins: ['gardr-plugin-host-resize']
}).then(function(result) {
console.log('host built at ' + result.filePath);
});
```

#### Configuration

Most of the time you don't need to touch main config (passed here as ```/* config */```), which controls things
like output directory etc., but if you need to, take a look at ```config.js``` file for default values.

#### Building

Use ```.host .ext .iframe``` methods of builder.

#### Options

```plugins: Array``` - plugins list as array of strings (host/ext)

```allowedDomains: Array``` - list of allowed domains as array of strings (ext)

```minify: Boolean``` - wether or not result should be minified (host/ext/iframe)

## CLI Usage

#### Example

```$> npm run make host minify```

#### Configuration

Go to ```/config``` directory and create files there:

```ext-plugins-default.txt``` - plugins that are loaded into ext by default

```host-plugins-default.txt``` - plugins that are loaded into host by default

```ext-allowed-domains.txt``` - domains that are allowed for ext by default

All those files should be a new line delimited lists. ```/config``` directory contains examples of them.

#### Building

Use this command to build the component: ```npm run make [host|ext|iframe] [options]```

Your built files will be placed inside ```/output``` directory. Global Gardr objects will be exposed as ```gardrHost``` and ```gardrExt```.

#### Options

```minify``` - to additionally create minified version of a component

```plugins=[path]``` - project root relative path to plugins list file that should be used instead of ```./config/[host|ext]-plugins-default.txt```

```allowedDomains=[path]``` - project root relative path to allowed domains list file that should be used instead of ```./config/ext-allowed-domains-default.txt```