Что флаг `-s --` делает для npm? - PullRequest
0 голосов
/ 12 февраля 2019

Я только что посмотрел видео Кента С. Доддса, где он объясняет свои .bash_profile.

Он использует следующие псевдонимы для yarn и 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"

Мне было интересно, что делает флаг -s --?Кент не объясняет это в видео, и я не могу найти info на флаге (ах).

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

-s эквивалентно --silent.

-- является общепринятым соглашением Unix, означающим конец опций.После этого, даже если аргумент выглядит как опция, он будет считаться позиционным аргументом.

0 голосов
/ 12 февраля 2019

Опция -s заставляет yarn ничего не выводить на стандартный вывод, т.е.

-- происходит от соглашений о полезности posix и очень распространено среди инструментов командной строки linux:

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.

Итак:

> printf "%s" -n
-n

Все в порядке, будет напечатано -n.Но:

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

Чтобы разрешить прохождение -n, т.е.Опция, начинающаяся с начального - в качестве первого аргумента для printf, можно использовать --:

> printf -- -n
-n

Так:

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

выбрасывает неизвестную опцию по пряже, так какон попытается проанализировать -p в качестве опции.Выполнение:

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

сгенерирует неизвестный пакет на yarn, так как нет пакета с именем -package.Используя --, автор фактически блокирует передачу пользователем (самим) каких-либо дополнительных параметров пряжи, поскольку все последующие аргументы будут интерпретироваться только как имена пакетов.

0 голосов
/ 12 февраля 2019

Это означает конец параметров команды.Следовательно, вы не можете использовать параметры команды (например, -s) после двойной черты.Однако вы можете, например, перечислить файлы для обработки по команде.

Объяснено здесь

Сам параметр -s является кратким эквивалентом --loglevel=silent, который отключаетвывод данных.

...