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

allow-scripts

v1.5.3

Published

Execute allowed `npm install` lifecycle scripts

Downloads

42

Readme

allow-scripts

Execute allowed npm install lifecycle scripts.

tl;dr

  • Whitelist packages that you trust in your package.json: "allowScripts": { "packageName": "1.x.x - 2.x.x" }
  • Run npm install --ignore-scripts or yarn install --ignore-scripts
  • Run npx allow-scripts

Only the explicitly allowed [pre|post]install scripts will be executed.

Usage

$ npx allow-scripts [--dry-run]

Running the command will scan the list of installed dependencies (using an existing package-lock.json or npm-shrinkwrap.json or by creating one on the fly). It will then execute the scripts for allowed dependencies that have them in the following order:

  • preinstall in the main package
  • preinstall in dependencies
  • install in dependencies
  • postinstall in dependencies
  • install in the main package
  • postinstall in the main package
  • prepublish in the main package
  • prepare in the main package

Configuration

  "allowScripts": {
    "fsevents": "*",        # allow install scripts in all versions
    "node-sass": false,     # ignore install scripts for all versions
    "webpack-cli": "3.x.x"  # allow all minors for v3, ignore everything else
  }

Allowed package list is configurable in package.json by adding an allowScripts property, with an object where the key is a package name and the value is one of:

  • a string with a semver specifier for allowed versions
    • non-matching versions will be ignored
  • true - allow all versions (equivalent to '*' semver specifier)
  • false - ignore all versions

If a package has a lifecycle script, but is neither allowed nor ignored, allow-scripts will exit with an error.