0.3.2 • Published 10 years ago
mandragora-bucket v0.3.2
mandragora-bucket
Dependencies
- nodejs > 0.12
- globally installed gulp
The purpose
mandragora-bucket provides bunch of gulp tasks that covers almost all needs of purescript project.
It can
- build projects via
pscorpsc-make - bundle
psc-maked orpsced projects with browserify - test projects with karma and check coverage with istanbul
- manage projects that have multiple entry points.
- watch
psc-makeandkarmabuilds - produce docs
How to use it
default directory structure
root
- 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 default config
{
paths: {
bower: [
'bower_components/purescript-*/src/**/*.purs',
'bower_components/purescript-*/purescript-*/src/**/*.purs'
],
src: ['src/**/*.purs'],
test: ['test/**/*.purs'],
docs: {
dest: 'MODULES.md'
}
},
tmpDir: 'dist'
}- It takes
paths.bowerandpaths.srcto compile and watch in main tasks. - It takes
paths.bower,paths.srcandpaths.testfor test tasks. gulp docsemits documentation topaths.docs.dest- Temporary directory is
tmpDir
minimal user config
{
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.
multiple entries config
{
"Entries.File": {
"name": "file",
"dir": "public"
},
"Entries.Notebook": {
"name": "notebook",
"dir": "public"
}
}This config will add tasks for both Entries.File and Entries.Notebook.
using it in gulpfile
var mandragora = require("mandragora-bucket"),
gulp = require("gulp");
mandragora.config.entries = {
"Entry": {
"name": "result",
"dir": "out"
}
};
// use mandragora.config as default
mandragora(gulp);
// or provide config as second argument
mandragora(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"
}
}
});Produced tasks
Call to mandragora.define(gulp) or mandragor.define(gulp, config) will produce
following tasks:
gulp bundle-test-- psc-makeTest.Mainentry and cover all file from src with istanbulgulp karma-- run tests inkarmagulp cover-- run tests inkarmaand send statictics tocoverallsgulp watch-test-- watch test and project sources, recompile it bygulp bundle-test
For each of entry in config.entries i.e.
{
"Foo.Bar": {
"name": "baz",
"dir": "out"
}
}suffix will be foo-bar
gulp make-- runpsc-makegulp entries-- make entry files for browserifygulp psci-- produce.psci_modulesfor sourcesgulp docs-- emit docsgulp prod-suffix-- runpscgulp bundle-suffix-- bundle this entrygulp bundle-prod-suffix-- bundlepscresult with it npm dependenciesgulp deploy-suffix-- compile viapsc-make, bundle it, move toentry.dirasentry.name + ".js"gulp deploy-prod-suffix-- compile viapsc, bundle it, move toentry.dirasentry.name + ".js"gulp watch-suffix-- rungulp deploy-suffixon source changegulp bundle-prod-- compile all entries bypscand then bundle it
Notes
- Tasks for testing will cause exception if there is no
Test.Mainmodule. gulp deploy-prodshould run aftergulp bundle-prodand move all its results to target directories. It doesn't.
0.3.2
10 years ago
0.3.1
11 years ago
0.3.0
11 years ago
0.2.5
11 years ago
0.2.4
11 years ago
0.2.3
11 years ago
0.2.2
11 years ago
0.2.1
11 years ago
0.2.0
11 years ago
0.1.12
11 years ago
0.1.11
11 years ago
0.1.10
11 years ago
0.1.9
11 years ago
0.1.8
11 years ago
0.1.7
11 years ago
0.1.6
11 years ago
0.1.5
11 years ago
0.1.4
11 years ago
0.1.3
11 years ago
0.1.2
11 years ago
0.1.1
11 years ago
0.1.0
11 years ago