Como usar ou executar um pacote instalado usando npm

Quando você instala um pacote usando npm dentro da sua pasta node_modules, ou também globamente, como você o utiliza em seu código Node.js?

Digamos que você instale a famosa biblioteca JavaScript de utilidades chamada lodash, usando

npm install lodash

Isso irá instalar o pacote na sua pasta node_modules local.

Para utilizá-lo em seu código, você só precisa importá-lo no seu programa utilizando require:

const _ = require('lodash')

Mas e se o seu pacote for um executável?

Nesse caso, ele para a pasta node_modules/.bin/.

Um jeito fácil de demonstrar isso é utilizando o cowsay.

O pacote cowsay fornece um programa de linha de comando que faz com que uma vaca diga algo (e outros animais também 🦊).

Quando você instala o pacote utilizando npm install cowsay, ele irá instalar a si mesmo e algumas poucas dependências na sua pasta node_modules local:

O conteúdo da pasta node_modules

Há uma pasta oculta chamada .bin, que contêm links simbólicos para os binários do cowsay:

Os arquivos binários

Como você executa isso?

É claro que você pode digitar ./node_modules/.bin/cowsay para executar, e vai funcionar, mas o npx, incluso nas versões recentes do npm (desde a 5.2), é uma opção muito melhor. Você só roda:

npx cowsay

e o npx vai encontrar a localização do pacote.

A vaca dizendo "take me out of here"