1
votes

Que fait l'indicateur `-s --` pour npm?

Je viens de regarder une vidéo de Kent C. Dodds où il explique son .bash_profile .

Il utilise le les alias suivants pour yarn et npm:

## npm aliases
alias ni="npm install";
alias nrs="npm run start -s --";
alias nrb="npm run build -s --";
alias nrd="npm run dev -s --";
alias nrt="npm run test -s --";
alias nrtw="npm run test:watch -s --";
alias nrv="npm run validate -s --";
alias rmn="rm -rf node_modules";
alias flush-npm="rm -rf node_modules && npm i && say NPM is done";
alias nicache="npm install --prefer-offline";
alias nioff="npm install --offline";

## yarn aliases
alias yar="yarn run";
alias yas="yarn run start -s --";
alias yab="yarn run build -s --";
alias yat="yarn run test -s --";
alias yav="yarn run validate -s --";
alias yoff="yarn add --offline";
alias ypm="echo \"Installing deps without lockfile and ignoring engines\" && yarn install --no-lockfile --ignore-engines"

Je me demandais ce que signifiait le -s - drapeau faire? Kent ne l'explique pas dans la vidéo et je n'ai trouvé aucune info sur le drapeau ( s).


3 commentaires

Ça fait deux drapeaux. Par convention, -s est le raccourci pour --silent . - est juste la fin des arguments à exécuter et le début des arguments à tout ce que vous exécutez. Voir docs.npmjs.com/cli/run-script.html (pas les documents d'installation, pour lesquels cela n'est pas utilisé).


Copie possible de Que fait - faire lors de l'exécution d'une commande npm?


Également stackoverflow.com/q/41383247/3001761


3 Réponses :


1
votes

Cela signifie la fin des options de commande. Par conséquent, vous ne pouvez pas utiliser les options de commande (telles que -s ) après un double tiret. Cependant, vous pouvez, par exemple, lister les fichiers à traiter par commande.

Expliqué ici

L'option -s elle-même est courte équivalente à --loglevel = silent qui désactive la sortie de journalisation.


0 commentaires

4
votes

-s équivaut à --silent .

- est une convention Unix courante signifiant la fin des options. Après cela, même si un argument ressemble à une option, il sera considéré comme un argument positionnel.


0 commentaires

4
votes

L'option -s fait que yarn ne produit rien sur la sortie standard, c'est-à-dire. le fait taire.

Le - provient de conventions de l'utilitaire posix et est très courant parmi les outils Linux en ligne de commande:

alias yas="yarn run start -s --";
yas -package 

Donc:

alias yas="yarn run start -s";
yas -package

Tous ok, il affichera -n . Mais:

> printf -- -n
-n

Pour permettre de passer -n , ie. option commençant par un - comme premier argument de printf, on peut utiliser --:

> printf -n
bash: printf: -n: invalid option
printf: usage: printf [-v var] format [arguments]

Donc:

> printf "%s" -n
-n

lancera une option inconnue par fil, car il essaiera d'analyser -p comme une option. Faire:

Guideline 10:
The first -- argument that is not an option-argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character.

lancera un paquet inconnu par yarn car il n'y a pas de paquet nommé -package . En utilisant - , l'auteur empêche effectivement l'utilisateur (lui-même) de transmettre des options supplémentaires à yarn, car tous les arguments suivants seront interprétés comme des noms de packages uniquement.


3 commentaires

Et le capital S? Y a-t-il une différence?


@ZakherMasri Et la capitale S? Différence entre quoi et quoi?


Le S majuscule au petit s (-s vs -S). Est-il même sensible à la casse?