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

engine-preflight

v1.2.0

Published

Verify that your node app can run on the currently installed version of node running on your system.

Downloads

1,354

Readme

engine-preflight

Simple tool to enforce local node version compatibility with your app.


Installation & Use

In your project directory

npm install engine-preflight

Then add this script to your package.json:

"postinstall": "check-engine"

And if you haven't already, define your node version requirements, like so:

"engines": {
  "node": ">=12.13.0 <13"
}

npm engine documentation

Using the engine settings and the postinstall script above, running npm install or npm ci to install modules will throw an error (after installation).

For example

Say you have node 10.16.3 installed and tried to run npm install for the project running "postinstall": "check-engine", here's the error output you'd receive:

> [email protected] postinstall /ProjectDir/coolApp
> check-engine

> Node version requirements ">=12.13.0 <13" are NOT satisfied with the current version of node: "v10.16.3"

  Please update your node version and try again.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `check-engine`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.

Cautionary notes

  • Placing the engine-preflight module in devDependencies may sound like a good idea, however, if you project is ever install as a module or via methods like npm install git+ssh://..., the installation will fail on postinstall because devDependencies are not installed when installing as a module.

  • It may seem like a good idea to place the check-engine call in a preinstall script, it is not*. The command relies on the engine-preflight module being installed, which means the check-engine preflight script would only pass if running npm install or npm ci on a repo that already has engine-preflight installed.

* Of course you could install engine-preflight globally to get around that problem.