Package Exports
- shx/lib/cli
- shx/lib/shx
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (shx) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Shx
shx
is a wrapper around ShellJS Unix
commands, providing an easy solution for simple Unix-like, cross-platform
commands in npm package scripts.
Install
npm install shx --save-dev
This will allow using shx
in your package.json
scripts.
Usage
Command Line
If you'd like to use shx
on the command line, install it globally with the -g
flag.
The following code can be run either a Unix or Windows command line:
$ shx pwd # ShellJS commands are supported automatically
/home/username/path/to/dir
$ shx ls # files are outputted one per line
file.txt
file2.txt
$ shx rm *.txt # a cross-platform way to delete files!
$ shx ls
$ shx echo "Hi there!"
Hi there!
$ shx touch helloworld.txt
$ shx cp helloworld.txt foobar.txt
$ shx mkdir sub
$ shx ls
foobar.txt
helloworld.txt
sub
$ shx rm -r sub # options work as well
$ shx --silent ls fakeFileName # silence error output
All commands internally call the ShellJS corresponding function, guaranteeing cross-platform compatibility.
package.json
ShellJS is good for writing long scripts. If you want to write bash-like, platform-independent scripts, we recommend you go with that.
However, shx
is ideal for one-liners inside package.json
:
{
"scripts": {
"clean": "shx rm -rf build dist && shx echo Done"
}
}
Unsupported Commands
Due to the differences in execution environments between ShellJS and shx
(JS vs CLI) some commands are not supported:
Unsupported command | Recommend workaround |
---|---|
shx cd |
Just use plain old cd (it's the same on windows too) |
shx pushd |
No workaround |
shx popd |
No workaround |
shx dirs |
No workaround |
shx set |
See below |
shx exit |
Just use plain old exit |
shx exec |
Instead of shx exec cmd , just use plain old cmd |
shx ShellString |
No workaround (but why would you want this?) |
Shx options
Shx allows you to modify its behavior by passing arguments. Here's a list of supported options:
set flag |
shell.config setting |
shx command | Effect |
---|---|---|---|
-e |
config.fatal = true |
Not supported | Exit upon first error |
-v |
config.verbose = true |
shx --verbose cd foo |
Log the command as it's run |
-f |
config.noglob = true |
shx --noglob cat '*.txt' |
Don't expand wildcards |
N/A | config.silent = true |
shx --silent cd noexist |
Don't show error output |
Team
Nate Fischer | Ari Porad | Levi Thomason |