Name: mandragora-bucket
Owner: SlamData, Inc.
Description: Gulp goodness for PureScript.
Created: 2015-03-03 22:47:39.0
Updated: 2015-05-04 16:57:58.0
Pushed: 2015-05-25 07:58:10.0
Homepage: null
Size: 366
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
mandragora-bucket provides bunch of gulp tasks that covers almost all needs of purescript project.
psc
or psc-make
psc-make
d or psc
ed projects with browserifypsc-make
and karma
builds
src/ -- Source code
test/ -- Tests code
dist/ -- temporary directory
- node_modules -- symlinks to project node_modules/ and psc-maked src
- entry-foo.js -- browserify entry one
- entry-bar.js -- browserify entry two
- test-main.js -- browserify test entry
bower_components/
node_modules/
MODULES.md -- generated docs
bower.json
package.json
ths: {
bower: [
'bower_components/purescript-*/src/**/*.purs',
'bower_components/purescript-*/purescript-*/src/**/*.purs'
],
src: ['src/**/*.purs'],
test: ['test/**/*.purs'],
docs: {
dest: 'MODULES.md'
}
pDir: 'dist'
paths.bower
and paths.src
to compile and watch in
main tasks.paths.bower
, paths.src
and paths.test
for test
tasks.gulp docs
emits documentation to paths.docs.dest
tmpDir
entries: {
"Main": {
"name": "build",
"dir": "public"
}
}
Merging this config with default will add tasks that compile module Main
,
bundle results (for psc-make
) and put it to public
directory.
"Entries.File": {
"name": "file",
"dir": "public"
},
"Entries.Notebook": {
"name": "notebook",
"dir": "public"
}
This config will add tasks for both Entries.File
and Entries.Notebook
.
mandragora = require("mandragora-bucket"),
gulp = require("gulp");
ragora.config.entries = {
"Entry": {
"name": "result",
"dir": "out"
}
se mandragora.config as default
ragora(gulp);
r provide config as second argument
ragora(gulp, {
paths: {
bower: ["bower_components/purescript-*/src/**/*.purs"],
src: ["my/src"],
test: ["my/test"],
docs: {dest: "OTHER.md"},
},
tmpDir: "tmp",
entries: {
"Main": {
name: "result",
dir: "out"
}
}
Call to mandragora.define(gulp)
or mandragor.define(gulp, config)
will produce
following tasks:
gulp bundle-test
– psc-make Test.Main
entry and cover all file from src with istanbulgulp karma
– run tests in karma
gulp cover
– run tests in karma
and send statictics to coveralls
gulp watch-test
– watch test and project sources, recompile it by gulp bundle-test
For each of entry in config.entries
i.e.
"Foo.Bar": {
"name": "baz",
"dir": "out"
}
suffix will be foo-bar
gulp make
– run psc-make
gulp entries
– make entry files for browserifygulp psci
– produce .psci_modules
for sourcesgulp docs
– emit docsgulp prod-suffix
– run psc
gulp bundle-suffix
– bundle this entrygulp bundle-prod-suffix
– bundle psc
result with it npm dependenciesgulp deploy-suffix
– compile via psc-make
, bundle it, move to entry.dir
as
entry.name + ".js"
gulp deploy-prod-suffix
– compile via psc
, bundle it, move to entry.dir
as
entry.name + ".js"
gulp watch-suffix
– run gulp deploy-suffix
on source changegulp bundle-prod
– compile all entries by psc
and then bundle itTest.Main
module.gulp deploy-prod
should run after gulp bundle-prod
and move all its results
to target directories. It doesn't.