![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
gulp-help-doc
Advanced tools
Gulp available tasks usage information based on jsdoc-like notations
Self-documented gulp tasks with pretty printable usage information in command-line.
$ npm install gulp-help-doc
Example gulpfile.js
var gulp = require('gulp');
var usage = require('gulp-help-doc');
var args = require('yargs').argv;
/**
* This simply defines help task which would produce usage
* display for this gulpfile. Simple run `gulp help` to see how it works.
* NOTE: this task will not appear in a usage output as far as it is not
* marked with the @task tag.
*/
gulp.task('help', function() { return usage(gulp); });
/**
* We may also link usage as default gulp task:
*/
gulp.task('default', ['help']);
/**
* This task will appear in usage output, because it is marked with the
* proper @task tag. Current information you're reading will be the task
* description.
*
* @task {demo}
* @order {1}
*/
gulp.task('demo', function() {});
/**
* Another task, which could handle some command-line argulents, for example,
* by using 'yargs' module. It is possible to describe expected by a task
* arguments using @arg tags. It is possible to specify as much argument
* tags as required by the job done within this task. For example here we
* describe three arguments:
*
* @task {test}
* @arg {argOne} first argument description which will appear in usage output
* @arg {argTwo} second argument description
* @arg {argThree} third argument description
*/
gulp.task('test', ['demo'], function() {
var one = args.argOne;
var thwo = args.argTwo;
var three = args.argThree;
// ... do something taking args into account ...
});
Put this example gulpfile in your project's root directory and run the following commands to install dependencies:
$ npm install yargs gulp gulp-help-doc
Now you can simply run
$ gulp help
or even more simply
$ gulp
and it will print you the proper usage information. It should look like:
Usage: gulp [task] [options]
Tasks:
demo This task will appear in usage output, because it is marked with
the proper @task tag. Current information you're reading will
be the task description.
test Another task, which could handle some command-line argulents,
for example, by using 'yargs' module. It is possible to describe
expected by a task arguments using @arg tags. It is possible
to specify as much argument tags as required by the job done
within this task. For example here we describe three arguments:
--argOne first argument description which will appear in usage output
--argTwo second argument description
--argThree third argument description
Depends: ["demo"]
Since version 1.1.0 it also supports tasks grouping using @group
tag:
var gulp = require('gulp');
var usage = require('../index');
/**
* Prints this help usage
*
* @task {help}
* @group {Misc}
* @order {21}
*/
gulp.task('help', function() { return usage(gulp); });
/**
* Builds entire project
*
* @task {build}
* @group {Building tasks}
* @order {11}
*/
gulp.task('build', ['build:css', 'build:js'], function() {});
/**
* Builds css bundle
*
* @task {build:css}
* @group {Building tasks}
* @order {12}
*/
gulp.task('build:css', function() {});
/**
* Builds js bundle
*
* @task {build:js}
* @group {Building tasks}
* @order {13}
*/
gulp.task('build:js', function() {});
gulp.task('default', ['help']);
The example above will output something like:
Usage: gulp [task] [options]
Tasks:
Building tasks
build Builds entire project
Depends: ["build:css","build:js"]
build:css Builds css bundle
build:js Builds js bundle
Misc
help Prints this help usage
When groups are enabled it will also use @order tags for groups sorting. In this case sorting is done using minimal @order value assigned to a task element in the group. Then inside a group it will arrange task elements by their specified @order.
This plugin enables you to use jsDoc-like tags to document your tasks and make those task documentation availabe from command-line as usage information.
@task {task_name}
@arg {arg_name} arg_description
@order {order_number}
@group {group_name}
Task description could be written in a free form before the @task
tag
declaration.
If @task
tag is omitted then the task will not appear in usage call.
Optionally, you can use the @order
tag to sort the tasks descriptions
in the output. A task with @order {1}
will appear before a task
with @order {2}
. All tasks without this tag will appear at the end
of the list, sorted alphabetically. If groups are enabled (by specifying
group
tag on the tasks) @order
tags assigned to the tasks also influence on
groups arrangement. Task groups will be ordered by a minimal @order
values
found inside each group.
When using TypeScript version of gulpfile it does not support task
doc definitions outside of main gulpfile.ts
, so it is recommended to
describe with docs all tasks in a main gulpfile.
This module provides you with usage() function which takes 2 arguments:
Options are:
true
(default), prints the task
dependencies below its help descriptiontrue
(default), prints an empty
line between tasks help descriptionsExample of custom configuration:
const usage = require('gulp-help-doc');
const gutil = require('gulp-util');
gulp.task('help', function() {
return usage(gulp, {
lineWidth: 120,
keysColumnWidth: 30,
logger: gutil
});
});
FAQs
Gulp available tasks usage information based on jsdoc-like notations
The npm package gulp-help-doc receives a total of 343 weekly downloads. As such, gulp-help-doc popularity was classified as not popular.
We found that gulp-help-doc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.