Install and use JBang from npm based projects.
Lets you use your own local scripts, JBang AppStore alias or any network reachable jar or Maven artifact.
The jbang.exec()
function accepts a string that will be passed as the command-line arguments to the jbang
executable.
Given this script test.js
:
#! /usr/bin/env node
const jbang = require('@jbangdev/jbang');
jbang.exec('properties@jbangdev');
And in package.json
(use the latest version from npm):
{
"scripts": {
"test": "node test.js"
},
"devDependencies": {
"@jbangdev/jbang": "^0.1.4"
}
}
Now you can invoke the test
script from the command-line:
npm run test
You can easily pass command-line arguments around:
let args = process.argv.slice(2).join(' ');
jbang.exec('com.myco.mylib:RELEASE ' + args);
So now if you run npm run test arg1 arg2
, arg1 arg2
will be appended to the command executed.
When you run npm install
- JBang and other dependencies will be installed via the npm preinstall
hook. This uses the app setup
command.
Opening a new terminal or shell may be required to be able to use the jbang
command from the system PATH
.
In most cases you should be able to use JBang directly in node scripts.
But if you want to provide more customization you can create your own "wrapper" NPM package. One of the advantages is that you can pre-install the library dependencies needed at the time of npm install
(just by calling --help
or a similar "no op" command) so that the user-experience when running the first command after install is better.
For an example, refer to the @karatelabs/karate
NPM package.