mission v0.0.9
Mission: common tasks in Web development
Bundled tasks for developing single page apps.
Usage
npm install --save-dev mission shelljs
Config in CoffeeScript or JavaScript:
#!/usr/bin/env coffee
require 'shelljs/make'
mission = require 'mission'
target.coffee = ->
mission.coffee
from: 'src/'
files: ['a.coffee', 'dir/b.coffee']
to: 'lib/'
options:
bare: yes
Here's mine: https://github.com/jiyinyiyong/mk/blob/master/make.coffee
Run it like this:
chmod +x make.coffee
./make.coffee coffee
or like me:
alias mk='coffee make.coffee'
mk coffee
Other configurations
Say if you want to compile only one file:
target.coffee = ->
mission.coffee
file: 'a.coffee'
from: 'src/'
to: 'lib/'
options:
bare: yes
Or you may need to find some files that are deep in folders:
target.coffee = ->
mission.coffee
find: /\.coffee$/
from: 'src/'
to: 'lib/'
options:
bare: yes
from
and to
are optional, you mat only need to write file
sometimes:
target.coffee = ->
mission.watch
file: 'dir'
trigger: (filename, extname) ->
Usage
tree
: creates file treebump
: bump version withsemver
.uglify
: minify JavaScript codecoffee
: compile CoffeeScript to JavaScript, with sourceMap supportwatch
: watch directories, callbackfilename
s andextname
stime
: log the time it costrealod
: reload tab withdevtools-reloader-station
browserify
: combine JavaScript code on CommonJSbrowserifyVender
: helper forbrowserify
to generatevender.js
cssmin
: combine CSS files and minify codedot
: precompile dot files to JavaScriptjade
: compile Jade to HTMLless
: compile LESS to CSS
SourceMap is enabled by default, and here I have to use command line.
Related to: https://github.com/less/less.js/issues/1985
Anyway, mission.less
needs to be updated in the future.
rsync
: run Rsync with some default configscopy
: copy files and directorieswait
: waitchan.done = false
to betrue
and run taskcirruHtml
compile Cirru HTMLcirruHtmlJs
compile Cirru to template in JavaScript(not tested)
Notice
Asynchronous callings are hard to handle in ShellJS. In this angle, Grunt did a good job in sequencing tasks.
But you can try wait
to reduce the pain.
mission
would keep watching .done
and run task when it's true
.
target.test = ->
a = done: no
mission.wait a, ->
console.log 'finish task'
setTimeout ->
a.done = yes
, 2000
Development
Compile *.coffee
:
./make.coffee compile
Changelog
0.0.8
add
external
option for browserifyadd
browserifyVender
task for multiple bundling
0.0.7
- Add
cirruHtmlJs
and renamecirruHtml
- Add
0.0.6
- Updated Cirru HTML to fix double quote in attributes
0.0.5
- Added
sourceMap
support
- Added
0.0.4
- Added flexibility and some default options to
rsync
- Added flexibility and some default options to
License
MIT
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago