Executáveis ​​NPM/Node.js globais

Apr 07 2023
Você já se deparou com uma biblioteca que, após a instalação global, oferece uma variedade de comandos globais? Esta é a popular biblioteca eslint. Se você instalá-lo globalmente, receberá um comando global chamado eslint.

Você já se deparou com uma biblioteca que, após a instalação global, oferece uma variedade de comandos globais?

Esta é a eslintbiblioteca popular. Se você instalá-lo globalmente, receberá um comando global chamado eslint.

Vamos ver como fazer algo assim.

Então, escrevo este trecho de código em um arquivo chamado hello.js.

#!/usr/bin/env node

console.log('Hey dear!');

Agora, se tentarmos executar nosso hello.jsarquivo, obteremos esse tipo de erro.

$ ./hello.js
-bash: ./hello.js: Permission denied

Para isso, precisamos usar chmodpara fazê-lo funcionar.

chmod +x hello.js

Agora podemos executá-lo assim!

$ ./hello.js
Hey dear!

Aliás, podemos simplificá-lo mais renomeando-o para algo como hello.
O tipo de arquivo não é importante neste caso, pois escrevemos algo mágico na primeira linha do arquivo.

Eu não vou tentar isso, porque queríamos algo que fosse jogado npm i -g, certo?

Então vamos continuar cozinhando...

Podemos verificar eslint'sa base de código e ver como eles fizeram isso. Só precisamos verificar package.jsono arquivo deles.

https://github.com/eslint/eslint/blob/main/package.json

Como você pode ver aqui, eles usaram esse binobjeto para configurar seu comando executável global.

Agora vou fazer o mesmo.

Vou criar um projeto Node.js. E configure o hello.jsexecutável como no eslint'sexemplo.

mkdir sayhi-nairi && cd sayhi-nairi
npm init --yes

{
  // ...
  "bin" : {
    "hello" : "./hello.js"
  }
}

npm publish

https://www.npmjs.com/sayhi-nairi

Usando whicho comando, você pode ver onde npmarmazenou esse executável.

Para obter informações adicionais, consulte a documentação do NPM e experimente diferentes recursos para explorar o que mais você pode conseguir.

Obrigado por tomar o tempo para ler este artigo. Por favor, sinta-se à vontade para entrar em contato comigo com quaisquer perguntas ou comentários que você possa ter. @nairihar

Como dimensionar o servidor de soquete Node.js com Nginx e Redis Como usar o Puppeteer no Heroku Os recursos gratuitos do Heroku estão mortos, vamos usar o Render