Grunt Roy
Invokes the Roy compiler through Grunt. Roy is a functional programming language that compiles to JavaScript.
The roy package is not listed as a
dependency for this package. Therefore, you must have it installed
before using this Grunt plugin. Note that it is recommended to use the
version of Roy specified in the devDependencies
of this package, but
other versions may also work.
Getting Started
From the same directory as your project's Gruntfile.js
and package.json
file, install this plugin with the following command.
npm install grunt-roy --save-dev
Once that's done, add the following line to your project's Gruntfile.js
file.
grunt;
If the plugin has been installed correctly, running grunt --help
at
the command line should list the newly-installed plugin's task or tasks.
In addition, the plugin should be listed in package.json as a
devDependency
, which ensures that it will be installed whenever the
npm install
command is run.
The "roy" task
Overview
In your project's Gruntfile, add a section named roy
to the data
object passed into grunt.initConfig()
.
grunt
Options
options.strict
Type: Boolean
Default value: false
A Boolean value that when true will insert "use strict";
into the
compiled JavaScript.
options.sourceMap
Type: Boolean
Default value: false
A Boolean value that when true will generate a source map file corresponding to each generated JavaScript file. Additionally, the original Roy source file will be copied to the destination to be made available for the source mapping.
Note that the source mapping URL will be appended to the compiled JavaScript file. The value of this URL will be relative so that it may reference the source map residing in the same directory. The reason this works is because if you include the JavaScript file with a script tag, the src attribute of the script tag will be used as the base path for the source mapping URL.
options.nodejs
Type: Boolean
Default value: false
A Boolean value that when true will not wrap the compiled JavaScript in
an immediately-invoked function expression. Additionally, Roy's export
keyword will map to the Nodejs exports
object. The following is an
example.
let A = {a: "a"}export A
var A = "a": "a";exports"A" = A;;
When the option value is set to false, an IIFE will wrap the compiled
JavaScript, and Roy's export
keyword will map to the this
object.
The following is an example.
let A = {a: "a"}export A
{var A = "a": "a";this"A" = A;;};