3.6.1 • Published 8 years ago

crossbow-cli v3.6.1

Weekly downloads
5
License
ISC
Repository
github
Last release
8 years ago

Build Status

Crossbow CLI

Combining the best bits of npm scripts, shell commands, gulp/grunt plugins + more

Example: Crossbow allows mix'n'match of various systems, the following examples show this. In this example, we want to wipe a directory, rebuild some HTML and then minify the entire directory

  • clean a dir with a shell command
  • run a gulp plugin
  • run an npm script

crossbow.yaml

tasks:
  build:
    - clean
    - crossbow
    - htmlmin
  clean: '@shell rm -rf ./public'
  htmlmin: >
    @npm html-minifier
    --input-dir dist
    --output-dir dist
    --collapse-whitespace

Both clean and htmlmin are just scripts, where crossbow points to a file in the tasks directory.

var vfs = require('vinyl-fs');
var crossbow = require('crossbow');

module.exports = function (options) {
    return vfs.src(options.input)
        .pipe(crossbow.stream({
            config: options.config,
            data: options.data
        }))
        .pipe(vfs.dest(options.output));
};

run

crossbow run build

Advanced file-watching system

short-hand example

watch:
  # default is the name of the watcher group
  default:
    # patterns are colon separated keys
    # tasks are any valid Crossbow tasks
    './scss:_scss': ['sass', 'cssmin']
	'/src/*.hbs': ['@shell rm -rf dist', 'handlebars', 'htmlmin', 'manifest:dev']

long-form example

watch:
  default:
    # you can define watchers like this if 
    # you prefer for readability
    watchers:
	  - patterns: ['./scss']
	    tasks:    ['sass', 'cssmin']
	  - patterns: ['/src/*.hbs']
	    tasks:    ['handlebars', 'htmlmin', 'manifest']

tasks: 
	# Configure tasks as above

short-hand example with options

watch:
  default:
    # `Options` can be set per-watcher.
    # This is especially useful when some types of
    # files need debouncing, but others do not
    options:
      debounce: 2000
      usePolling: true
    # Short-hand syntax is also fine here
    './scss': ['sass', 'cssmin']
	'/src/*.hbs': ['handlebars', 'htmlmin', 'manifest']

short-hand example with options + before tasks

watch:
  default:
    options:
      debounce: 2000
      usePolling: true
    # Giving multiple 'before' tasks will ensure
    # that all are run + completed before any watchers 
    # begin. They can be task names, shell scripts, js files etc
    before:
  	  - '@shell rm -rf dist'
  	  - '@npm browser-sync start -s'
    './scss': ['sass', 'cssmin']
	'/src/*.hbs': ['handlebars', 'htmlmin', 'manifest']
3.6.1

8 years ago

3.6.0

8 years ago

3.5.1

8 years ago

3.5.0

8 years ago

3.4.0

8 years ago

3.3.0

8 years ago

3.2.2

8 years ago

3.2.1

8 years ago

3.2.0

8 years ago

3.1.0

8 years ago

3.0.22

8 years ago

3.0.19

8 years ago

3.0.18

8 years ago

3.0.17

8 years ago

3.0.16

8 years ago

3.0.15

8 years ago

3.0.14

8 years ago

3.0.13

8 years ago

3.0.12

8 years ago

3.0.11

8 years ago

3.0.10

8 years ago

3.0.9

8 years ago

3.0.8

8 years ago

3.0.7

8 years ago

3.0.6

8 years ago

3.0.5

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.3.0

8 years ago

2.2.0

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.9

8 years ago

2.0.8

8 years ago

2.0.7

9 years ago

2.0.6

9 years ago

2.0.5

9 years ago

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.1.11

9 years ago

1.1.10

9 years ago

1.1.9

9 years ago

1.1.8

9 years ago

1.1.7

9 years ago

1.1.6

9 years ago

1.1.5

9 years ago

1.1.4

9 years ago

1.1.3

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago