![importa onde o sinalizador aparece em um comando?](https://rvso.com/image/178495/importa%20onde%20o%20sinalizador%20aparece%20em%20um%20comando%3F.png)
Tenho usado o seguinte comando para instalar o pacote Expo CLI:
sudo npm install expo-cli --global
O comando acima funciona com sucesso para instalar esse pacote. No entanto, estou me perguntando se mover --global
antes do nome do pacote funcionaria igualmente ao comando acima. Então, fazendo isso:
sudo npm install --global expo-cli
Ambiente: Ubuntu 18.04.
Procurei uma referência on-line, mas não encontrei nenhuma (embora deva haver uma em algum lugar).
Responder1
Opágina de manual paranpm(1)
mostra:
Synopsis npm <command> [args]
Não diz muito mais, então tudo o que podemos deduzir é que install
é o <command>
e deve vir antes do [args]
. Os [args]
são expo-cli
e --global
.
Vamos inspecionar o install
comando para ver se conseguimos mais detalhes. npm-install(1)
diz:
Synopsis ... npm install [<@scope>/]<name> ... aliases: npm i, npm add common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
Não diz nada sobre ordem. Isso começa a nos fazer pensar que a ordem não importa. Se rolarmos para baixo, veremos coisas como:
The --tag argument will apply to all of the specified install targets. The -g or --global argument will cause npm to install the package globally rather than locally. See npm help folders.
Ok... então a ordem nunca é mencionada na página de manual, mas vemos que isso --tag
se aplica a todos os alvos. Eles acharam que era importante mencionar na página de manual porque se alguém tentar instalar vários pacotes e especificar uma tag, eles podem assumir que o --tag
sinalizador se aplica apenas ao pacote antes ou depois. Não é esse o caso, as opções se aplicam a tudo. Se as opções se aplicam a tudo, entãoa ordem provavelmente não é importante.
Observe que todos os exemplos dados na página de manual colocam o pacote antes do sinalizador.
Você poderia experimentar:
npm install sax --global expo-cli
Verifique se ambos estão instalados globalmente (aposto que estão).
Se você deseja instalar vários pacotes, alguns locais, alguns globais, sugiro adotar uma abordagem segura e usar dois comandos separados porque não está definido na documentação e, portanto, o comportamento pode mudar.