![¿Importa dónde aparece la bandera en un comando?](https://rvso.com/image/178495/%C2%BFImporta%20d%C3%B3nde%20aparece%20la%20bandera%20en%20un%20comando%3F.png)
He estado usando el siguiente comando para instalar el paquete Expo CLI:
sudo npm install expo-cli --global
El comando anterior funciona correctamente para instalar ese paquete. Sin embargo, me pregunto si mover el --global
antes del nombre del paquete funcionaría de la misma manera que el comando anterior. Entonces, haciendo esto en su lugar:
sudo npm install --global expo-cli
Entorno: Ubuntu 18.04.
Busqué una referencia en línea pero no encontré ninguna (aunque debe haber una en alguna parte).
Respuesta1
Elpágina de manual paranpm(1)
muestra:
Synopsis npm <command> [args]
No dice mucho más, por lo que todo lo que podemos deducir es que install
es el <command>
y debe ir antes del [args]
. Los [args]
son expo-cli
y --global
.
Inspeccionemos el install
comando para ver si podemos obtener más detalles. npm-install(1)
dice:
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]
No dice nada sobre el orden. Esto empieza a hacernos pensar que el orden no importa. Si nos desplazamos hacia abajo vemos cosas 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... entonces el orden nunca se menciona en la página de manual, pero vemos que --tag
se aplica a todos los objetivos. Sintieron que era importante mencionarlo en la página de manual porque si alguien intenta instalar varios paquetes y especificar una etiqueta, podría asumir que la --tag
bandera se aplica solo al paquete anterior o posterior. Ese no es el caso, las opciones se aplican a todo. Si las opciones se aplican a todo, entoncesEl orden probablemente no sea importante..
Tenga en cuenta que todos los ejemplos que dan en la página de manual colocan el paquete antes de la bandera.
Podrías probarlo:
npm install sax --global expo-cli
Compruebe si ambos están instalados globalmente (apuesto a que sí).
Si desea instalar varios paquetes, algunos locales y otros globales, le sugiero que adopte un enfoque seguro y utilice dos comandos separados porque no está definido en la documentación y, por lo tanto, el comportamiento podría cambiar.