FNSPMDocumentation

Overview

00

Run the package manager you already use, with project settings and reversible local dependency storage.

On this page

FNSPM is a command-line wrapper for npm, Yarn, pnpm, Bun, and Deno. It selects a manager for your project, forwards your command, and can keep local dependencies in a separate directory connected to node_modules.

The manager still resolves packages, writes lockfiles, and runs scripts. FNSPM adds configuration, reversible storage, and coordination around that workflow.

Start with your existing project

Install FNSPM with Node.js 22 or newer, then run it in a project that already has a package manifest.

Shell
npm install -g fnspm@1.0.0
fnspm config --show
fnspm install

No configuration file is required. By default, FNSPM detects the manager and uses a project-local node_modules.nosync directory. If it cannot detect a manager, it falls back to npm. The chosen manager must already be on your PATH.

Follow Getting started for a complete first install, or Configuration to customize an existing project.

What conversion changes

A successful native command can turn this layout:

Text
project/
  package.json
  node_modules/             actual dependency files

Into this layout:

Text
project/
  package.json
  node_modules -> node_modules.nosync
  node_modules.nosync/      the same dependency files
  .fnspm-state.json         recorded ownership

On Linux and macOS, the connection is a symbolic link. On Windows, it is a directory junction. Your code continues to import packages through node_modules.

You can inspect the layout with fnspm doctor and return to a regular dependency directory with fnspm restore. See Dependency storage for the complete lifecycle.

Choose the guide for your workflow

You want to… Read
Install FNSPM and run your first command Getting started
Give projects or sections different settings Configuration and Projects & workspaces
Understand auto-convert or move dependencies outside a synced folder Dependency storage
Use a specific manager, workspace filter, or lockfile install Package managers
Look up flags and return codes CLI reference
Investigate a broken link, lock, or destination conflict Troubleshooting
Upgrade an older FNSPM setup Upgrading to v1
See what changed in a release Changelog

What v1 guarantees

Version 1.0 preserves documented configuration formats, section overrides, native arguments, child exit codes, and local automatic conversion. The supported JavaScript API and exported types are documented in JavaScript & types.

FNSPM holds operation locks across restoration, native execution, and conversion. A competing FNSPM operation on the same dependency scope fails before another manager starts. Independent projects can operate independently.

These locks coordinate FNSPM processes. Direct manager commands and cloud clients do not participate in them.

Cloud storage and installation speed

FNSPM does not configure cloud-provider exclusions or guarantee that installs become faster. The .nosync naming convention is not a universal exclusion mechanism. Automatic conversion happens after a native command finishes, so files can still be synced during an install.

For cloud-oriented setups, read Dependency storage before choosing a destination. Use provider-supported exclusions or dedicated storage outside the synced folder, and verify the provider's behavior.

Search documentation

Arrow keys to navigate. Enter to open. Escape to close.