tomchentw/gulp-livescript

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# gulp-livescript
> Compile LiveScript to JavaScript for Gulp

[![Version][npm-image]][npm-url] [![Travis CI][travis-image]][travis-url] [![Quality][codeclimate-image]][codeclimate-url] [![Coverage][codeclimate-coverage-image]][codeclimate-coverage-url] [![Dependencies][gemnasium-image]][gemnasium-url] [![Gitter][gitter-image]][gitter-url]


## Installation

```sh
npm i --save gulp-livescript
```


## Information

<table>
<tr>
<td>Package</td><td>gulp-livescript</td>
</tr>
<tr>
<td>Description</td>
<td>Compile LiveScript to JavaScript for Gulp</td>
</tr>
<tr>
<td>Node Version</td>
<td>>= 0.10</td>
</tr>
<tr>
<td>Gulp Version</td>
<td>>= 3.5.0</td>
</tr>
</table>


## Example

### See how we compile [`src/index.ls`](https://github.com/tomchentw/gulp-livescript/blob/master/src/index.ls) to [`lib/index.js`](https://github.com/tomchentw/gulp-livescript/blob/master/lib/index.js) in [this project](https://github.com/tomchentw/gulp-livescript/blob/631b6f34e74133a595609732d724e98649ab48a6/gulpfile.ls).

*Notice:* I used gulpfile to compile src to lib in the old days, now I use `lsc` compiler directly.

![`gulpfile.ls`](https://f.cloud.github.com/assets/922234/2353915/093164d2-a5ae-11e3-8016-d1191004acb2.png)


## Usage

```javascript
var gulpLiveScript = require('gulp-livescript');

gulp.task('ls', function() {
  return gulp.src('./src/*.ls')
    .pipe(gulpLiveScript({bare: true})
    .on('error', gutil.log))
    .pipe(gulp.dest('./public/'));
});
```


### Error Handling

`gulp-livescript` will [emit an error](https://github.com/tomchentw/gulp-livescript/blob/master/test/main.ls#L45) for cases such as invalid LiveScript syntax.

If you need to exit gulp with non-0 exit code, attatch a lister and throw the error:

```livescript
gulp.task 'build' ->
  return gulp.src 'test/fixtures/illegal.ls'
    .pipe gulp-livescript bare: true
    .on 'error' -> throw it
    .pipe gulp.dest '.'
```


### Options

The options object supports the same options as the standard LiveScript compiler.

## Source maps

gulp-livescript can be used in tandem with [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps) to generate source maps for the livescript to javascript transition. You will need to initialize [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps) prior to running the gulp-livescript compiler and write the source maps after.

```javascript
var sourcemaps = require('gulp-sourcemaps');

gulp.src('./src/*.ls')
  .pipe(sourcemaps.init())
  .pipe(livescript())
  .pipe(sourcemaps.write())
  .pipe(gulp.dest('./dest/js'));

// will write the source maps inline in the compiled javascript files
```

By default, [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps) writes the source maps inline in the compiled javascript files. To write them to a separate file, specify a relative file path in the `sourcemaps.write()` function.

```javascript
var sourcemaps = require('gulp-sourcemaps');

gulp.src('./src/*.ls')
  .pipe(sourcemaps.init())
  .pipe(livescript({ bare: true })).on('error', gutil.log)
  .pipe(sourcemaps.write('./maps'))
  .pipe(gulp.dest('./dest/js'));

// will write the source maps to ./dest/js/maps
```

## Contributing

[![devDependency Status][david-dm-image]][david-dm-url]

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request


## Credits

* [`gulp-coffee` by @wearefractal](https://github.com/wearefractal/gulp-coffee)


[npm-image]: https://img.shields.io/npm/v/gulp-livescript.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/gulp-livescript

[travis-image]: https://img.shields.io/travis/tomchentw/gulp-livescript.svg?style=flat-square
[travis-url]: https://travis-ci.org/tomchentw/gulp-livescript
[codeclimate-image]: https://img.shields.io/codeclimate/github/tomchentw/gulp-livescript.svg?style=flat-square
[codeclimate-url]: https://codeclimate.com/github/tomchentw/gulp-livescript
[codeclimate-coverage-image]: https://img.shields.io/codeclimate/coverage/github/tomchentw/gulp-livescript.svg?style=flat-square
[codeclimate-coverage-url]: https://codeclimate.com/github/tomchentw/gulp-livescript
[gemnasium-image]: https://img.shields.io/gemnasium/tomchentw/gulp-livescript.svg?style=flat-square
[gemnasium-url]: https://gemnasium.com/tomchentw/gulp-livescript
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
[gitter-url]: https://gitter.im/tomchentw/gulp-livescript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[david-dm-image]: https://img.shields.io/david/dev/tomchentw/gulp-livescript.svg?style=flat-square
[david-dm-url]: https://david-dm.org/tomchentw/gulp-livescript#info=devDependencies