grunt-portal
v0.5.7
Published
Start a development environment.
Downloads
24
Readme
grunt-portal
Get a development environment up and running
Getting Started
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-portal --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-portal');
The "portal" task
Overview
In your project's Gruntfile, add a section named portal
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
portal: {
// dev is your target name
dev: {
options: {
// Task-specific options go here.
}
}
},
});
Options
options.blueprint
Type: String
Default value: ''
Path to blueprint file which will be used to start a api mock server at the root of the server and Aglio documentation at /doc/api
options.publicDir
Type: String
Default value: ``
Directory from which views and static files will be served. Also, it's the base directory for templates, if viewsDir, partialsDir or helpersDir are not specified.
options.viewsDir
Type: String
Default value: `` (falls back to options.publicDir + '/views'
)
Directory from which views will be served.
options.partialsDir
Type: String
Default value: `` (falls back to options.publicDir + '/partials'
)
Directory from which partials will be registered.
options.helpersDir
Type: String
Default value: `` (falls back to options.publicDir + '/helpers'
)
Files inside this directory will be used as helpers for Handlebars. The file should be a node module file, and the filename (with .js extension) will be used as the helper name (removing the extension).
For example, filename compare.js
:
module.export = function(lvalue, rvalue, options) {
if (arguments.length < 3)
throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
operator = options.hash.operator || "==";
var operators = {
'==': function(l,r) { return l == r; },
'===': function(l,r) { return l === r; },
'!=': function(l,r) { return l != r; },
'<': function(l,r) { return l < r; },
'>': function(l,r) { return l > r; },
'<=': function(l,r) { return l <= r; },
'>=': function(l,r) { return l >= r; },
'typeof': function(l,r) { return typeof l == r; }
}
if (!operators[operator])
throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+operator);
var result = operators[operator](lvalue,rvalue);
if( result ) {
return options.fn(this);
} else {
return options.inverse(this);
}
};
Would be used as {{#compare var_a var_b operator='!='}}
options.docsDir
Type: String
Default value: ``
Files inside this directory will be served as documentation, You will be able to access /doc/{pathname}.md
at /doc/{pathname}
.
options.useHTML
Type: Boolean
Default value: false
Defines wether to serve html files instead of the default Handlebars templates. Used to serve prebuilt HTML files.
options.portalViewsPrefix
Type: string
Default value: ``
Set a prefix for the Portal views. It can use url variables, for example:
portalViewsPrefix: "internationalized/:language_:country/:portal"
When requiring http://localhost:3000/es_ar/apps/personas/appname
, it would search for the file viewsDir/internationalized/es_ar/personas/index.html
(or index.hbs).
options.routes
Type: String
Default value: {}
A map where object keys will be used as uri routes that route into local files.
options.proxies
Type: String
Default value: {}
A map where object keys will be used as uri paths to intercept and redirect to proxy.
For example:
proxies: {
"/ws/*": {
host: "api.example.com",
port: "80"
}
}
will redirect any request to localhost:3000/ws/my_service.php
to api.example.com/ws/my_service.php
.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)