or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-is-npm

Utility library for detecting whether JavaScript code is running within npm or yarn script execution context through environment variable checks

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/is-npm@6.0.x

To install, run

npx @tessl/cli install tessl/npm-is-npm@6.0.0

index.mddocs/

is-npm

Check if your code is running as an npm or yarn script. This package provides three boolean constants that detect the package manager execution context by analyzing environment variables set by npm and yarn.

Package Information

  • Package Name: is-npm
  • Package Type: npm
  • Language: JavaScript (ES modules) with TypeScript definitions
  • Node.js: ^12.20.0 || ^14.13.1 || >=16.0.0
  • Installation: npm install is-npm

Core Imports

import { isNpm, isYarn, isNpmOrYarn } from "is-npm";

For TypeScript:

import { isNpm, isYarn, isNpmOrYarn } from "is-npm";

Basic Usage

import { isNpmOrYarn, isNpm, isYarn } from "is-npm";

// Check if running under any package manager
if (isNpmOrYarn) {
  console.log("Running as an npm or yarn script!");
}

// Check specifically for npm
if (isNpm) {
  console.log("Running as an npm script!");
}

// Check specifically for yarn
if (isYarn) {
  console.log("Running as a yarn script!");
}

// Conditional logic based on execution context
console.table({ isNpmOrYarn, isNpm, isYarn });

Capabilities

Package Manager Detection

Provides boolean constants to detect the current package manager execution context.

/**
 * Check if code is running as an npm script
 * Detects both npm 6 (via user agent) and npm 7+ (via package.json path)
 */
export const isNpm: boolean;

/**
 * Check if code is running as a yarn script
 * Detects yarn by checking the user agent environment variable
 */
export const isYarn: boolean;

/**
 * Check if code is running as either npm or yarn script
 * Logical OR combination of isNpm and isYarn
 */
export const isNpmOrYarn: boolean;

Detection Mechanism

The package uses environment variables set by npm and yarn during script execution:

  • npm detection: Checks process.env.npm_config_user_agent (npm 6) and process.env.npm_package_json (npm 7+)
  • yarn detection: Checks process.env.npm_config_user_agent starting with "yarn"
  • Combined detection: Returns true if either npm or yarn is detected

Usage Patterns

Common use cases for package manager detection:

import { isNpmOrYarn } from "is-npm";

// Conditional behavior in build scripts
if (isNpmOrYarn) {
  // Code runs only when executed via package manager
  console.log("Running in development mode");
} else {
  // Code runs when executed directly with node
  console.log("Running in production mode");
}
import { isNpm, isYarn } from "is-npm";

// Package manager specific logic
if (isNpm) {
  console.log("Using npm-specific configuration");
} else if (isYarn) {
  console.log("Using yarn-specific configuration");
} else {
  console.log("Running outside package manager context");
}

Environment Variables

The package relies on these environment variables automatically set by package managers:

  • npm_config_user_agent: Contains package manager name and version (both npm and yarn)
  • npm_package_json: Contains path to package.json (npm 7+ only)

These variables are automatically available when scripts are executed via npm run or yarn run commands.