Get unlimited public & private packages + team-based management with npm Teams.Learn more »

shebang-it

0.0.6 • Public • Published

shebang-it

What is it?

tl;dr: tiny util that shebangs your bundled file

Maybe I'm missing something, but it seems like the offerings of parcel-bundler, and webpack are missing a crucial lib to do with the usability of bundled command line utilites:

You need to be able to actually run them.

So, I wrote a tiny util to take a bundled js file, slap a shebang on top, move it into a bin folder, and give it executable perms. I've been passing this around a few of my cli util projects for a while, and figured it was high time to make it official. So now it is!


How to use it?

tl;dr: yarn add -D shebang-it && npx shebang-it

shebang-it takes a single argument: the folder path to the file you'd like made executable, and it defaults to dist

it can also take the following optional properties if you want to get creative with creating tons of different bin files:

Arg Longform Description Example
-i --input-filename custom filename for the assumed dist util shebang-it -i windex.js
-o --output-filename custom filename for the output bin util shebang-it -o shebang-it.js

As part of my build process with husky and lint-staged, I like generating the files automatically. That way, in a precommit, the bin file will always be up to date, and when using the np library to push updates to npm there won't be anything to blame for the right code not landing.


TODO:

tl;dr: Mostly dev cleanup

THE ISSUE 0. PATCH OUR DEFAULT BACK OUT WHEN THE ISSUE IS RESOLVED signale issue np issue ava issue

It seems like execa (another sindresorhus package) hijacks the output stream. This meant that any cli package using shebang-it would explode when trying to use np to update itself. That's super annoying. It seems like a lower priority thing, so in the meantime, I've added a small bit of code to default the stdio stream if it's not present to a nooplike thing. I'm unhappy with this, and want it gone ASAP.

  1. add it to project-status
  2. generate a couple badges
  3. add it to travis-ci
  4. report coverage
  5. report test percentage
  6. report code quality
  7. add option for silent execution
  8. add a ricky-martin themed svg logo

Install

npm i shebang-it

DownloadsWeekly Downloads

2

Version

0.0.6

License

MIT

Unpacked Size

13.6 kB

Total Files

6

Last publish

Collaborators

  • avatar