Как предоставить значение параметра по умолчанию для скрипта npm?

1

У меня это в файле package.json:

scripts: { 
  "echo": "echo ${1-'/*'}"
}

Затем, когда я запускаю npm run echo я получаю /* что и есть то, что я хочу (он обозначает все пути из корня. Это значение по умолчанию).

Но, когда я запускаю npm run echo/salad, я получаю /*/salad который не помогает. Кажется, он использует значение по умолчанию, добавляя пробел, а затем добавляя параметр.

Как я могу получить /salad когда я предоставляю параметр, и /* когда я не предоставляю параметр?

Теги:
npm

1 ответ

2
Лучший ответ

аргументы сценария npm просто добавляются до конца, поэтому они не будут корректно разрешать числовые переменные, такие как $1.

Чтобы разрешить такие переменные, вы можете обернуть свой скрипт в функцию оболочки, а затем выполнить функцию. Попробуй это:

scripts: { 
  "echo": "run(){ echo ${1-'/*'}; }; run"
}

Кроме того, просто используйте именованные переменные в своем скрипте вместо числовых.

  • 0
    Функция run () сработала. Странный. Хорошо, спасибо!
  • 0
    Хм ... есть ли шанс, что я могу передать любое количество переменных?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню