npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hijak

v0.4.4

Published

A tool for hijacking an npm project's build system.

Downloads

13

Readme

hijak

An tool for hijacking another project's npm scripts for the greater good.

But Why?

Because these things make me sad:

  • Maintaining a build pipeline for each project really sucks.
  • Most code boilerplates (except for the big boys) are decoupled from the project from which they are based the moment you start changing them.
  • Build systems will inevitably be replaced. When it happens it shouldn't grind everything to a halt.
  • Security vulnerabilities in the build pipeline (within jest for example) are taking up an increasing amount of my time. Every single project I wrote using jest needs to be updated. I'm ready to flip a table over this.

The Hijak Approach

Your code is a patch on a hijacked project. It performs the patch, then starts a synchronizer and watches the scripts run, duplicating changes in your project.

A nice little flowchart of what happens when you run hijak run build: https://code2flow.com/z9duzS

Hijak in 5 minutes (or less)

Step 1 - install hijak

npm install --global hijak

Step 2 - write a simple project (or clone one like we do below)

The one below uses, jest and import both a prod and dev dependency.

git clone [email protected]:allain/example-hijak-js.git example
cd example

Step 3 - Perform the hijack

In this case the hijacked template offers esm module support, tree shaking of generated bundles, and jest out of the box.

hijak [email protected]:allain/template-nodejs-project.git

Step 4 - Profit

All of the hijacked npm run scripts are now available to you through the hijak tool.

In this case

# to get a list of available npm run scripts
hijak run

# to run tests in watch mode and generate code coverage reports
hijak test --watchAll --coverage

# to run build in watch mode
hijak run build --watch

# to clean your project of any generate build artifacts
hijak run clean