У меня это в файле package.json
:
scripts: {
"echo": "echo ${1-'/*'}"
}
Затем, когда я запускаю npm run echo
я получаю /*
что и есть то, что я хочу (он обозначает все пути из корня. Это значение по умолчанию).
Но, когда я запускаю npm run echo/salad
, я получаю /*/salad
который не помогает. Кажется, он использует значение по умолчанию, добавляя пробел, а затем добавляя параметр.
Как я могу получить /salad
когда я предоставляю параметр, и /*
когда я не предоставляю параметр?
аргументы сценария npm просто добавляются до конца, поэтому они не будут корректно разрешать числовые переменные, такие как $1
.
Чтобы разрешить такие переменные, вы можете обернуть свой скрипт в функцию оболочки, а затем выполнить функцию. Попробуй это:
scripts: {
"echo": "run(){ echo ${1-'/*'}; }; run"
}
Кроме того, просто используйте именованные переменные в своем скрипте вместо числовых.