DEV Community

Cover image for 🚀 FNPM Just Became Invisible (In the Good Way): Transparent Alias, Better Tests & a Smoother Experience
Jairo Fernández
Jairo Fernández

Posted on

🚀 FNPM Just Became Invisible (In the Good Way): Transparent Alias, Better Tests & a Smoother Experience

There are moments when you stop, look at your terminal, and think:

“Why does something as simple as managing packages in JavaScript has to be… so dramatic?”

If you've been around the Node.js ecosystem for more than 5 minutes, you know exactly what I mean.

Well, FNPM just got its biggest update ever, and no, it’s not “just another technical improvement.” This update is about giving you the experience we all secretly wanted: using your favorite package manager while something way smarter runs behind the scenes.

Let me explain.


🎭 Before: npm, pnpm, yarn… drama.

🎉 Now: use whatever you want. FNPM does the hard work.

The biggest change (and my personal favorite) is the new transparent alias system.

This means you can now type:

pnpm install
Enter fullscreen mode Exit fullscreen mode

…and behind the scenes, FNPM is actually doing the job.

Why is this so massive?

Because for the first time, an alternative package manager can sneak into (yeah, sounds weird but it’s beautiful) your workflow without asking you to change anything.

If your team uses pnpm, perfect.

If you prefer FNPM’s model and how it handles things, also perfect.

If your environment is mixed… well, guess what? It works too.

FNPM now behaves as a real drop-in replacement, like for real real.


🪄 How does this alias magic works?

FNPM now includes a smart hook system that intercepts the traditional package manager commands and transforms them into FNPM operations.

In short:

  1. It detects what you want (install, add, update, run, etc.).
  2. It maps it to FNPM’s internal engine.
  3. It keeps the CLI experience you already know.

All without breaking scripts, without changing your mental model, and without asking you to learn new commands (because, honestly, nobody wants that anymore 😅).


🧪 Better test coverage (and now actually cross-platform)

Another big step forward is the improved test coverage, which now behaves consistently across systems:

  • Linux
  • macOS
  • Windows (yes, Windows got some love this time 😎)

Error messages, symlink behavior, path formatting… all those cross-platform headaches?

FNPM now handles them.

This means FNPM isn’t just “usable” on Windows —

it’s reliable, predictable, and CI-friendly across all platforms.


🛠️ Other cool improvements worth mentioning

  • New fnpm source command for shell integration
  • GitHub Workflows + issue templates for better contributing
  • Updated dependencies (thanks Dependabot 💚)
  • Cleaner project structure with better dev tooling
  • A more complete test suite for future expansions

FNPM keeps growing with a focus on simplicity + power, not complexity.


🪄 A real example: turning pnpm into FNPM (without anyone noticing)

Here’s a real example of how easy this is.

I swear the first time you run it, you’ll feel that “oh wow” moment 😅.

(base) ➜  awesome-project fnpm setup pnpm  
Selected package manager: pnpm  

🎉 FNPM hooks created successfully!

Setup Instructions:  
Unix/Linux/macOS:  
  1. Source the setup script:  
     source .fnpm/setup.sh  
  2. Or add to your shell profile (~/.bashrc, ~/.zshrc):  
     echo 'eval "$(fnpm source)"' >> ~/.zshrc  

Usage:  
  • Now you can use pnpm directly:  
    pnpm add some-package  
    pnpm install  
    pnpm run my-script  
  • Commands will be automatically redirected to fnpm  

Note:  
  • Hooks only work in directories with .fnpm configuration  
  • Use full path to bypass: $(which pnpm) command  
Enter fullscreen mode Exit fullscreen mode

Reload your shell:

(base) ➜  awesome-project echo 'eval "$(fnpm source)"' >> ~/.zshrc
Enter fullscreen mode Exit fullscreen mode

Now try any pnpm command:

(base) ➜  awesome-project pnpm --help
Enter fullscreen mode Exit fullscreen mode

You’ll see something like:

🔄 This pnpm command is intercepted by FNPM  
Available commands:  
  install, add, remove, run, list, update, cache, clean  

Use 'fnpm --help' for more information  
Enter fullscreen mode Exit fullscreen mode

🔥 Boom.

From that moment on, you keep using pnpm like always…

but FNPM is the one doing the heavy lifting behind the curtain.

No workflow changes.

No broken scripts.

No new habits.

Just smooth developer life.


✨ In short: FNPM is no longer “used”… it’s felt

With this transparent alias system, FNPM stops being a command you remember to type, and becomes:

  • fast
  • consistent
  • cross-platform
  • and completely invisible when you want it to be

If it was useful before, now it feels… kinda magical, honestly.


🤖 PS: we used AI to help us write this article — because great tools deserve great storytelling.

🙌🏼Documentation here

Top comments (0)