2017-01-24 4 views
0

Я читаю tutorial о начале работы с модульными тестами Node.js:Node JS - разделитель

Мы создали наши тесты, чтобы работать на изменениях файлов путем добавления следующего за package.json в:

"scripts": { 
    "test": "mocha -R spec test/*-spec.js", 
    "watch": "npm test -- --watch" 
} 

Существует примечание:

передавая параметры командной строки с помощью - разделитель требует узла> 0,11

Что такое разделитель --?

Это переключатель? Флаг? Является стандартом для приложений командной строки Node.js? Где я могу узнать больше об этом?

+0

См. https://unix.stackexchange.com/questions/11376/what-does-double-dash-mean-also-known-as-bare-double-dash. В этом случае он отделяет флаги npm от дополнительных аргументов тестовому скрипту. – Ryan

+0

Итак, в этом контексте 'npm' является исполняемым,' test' подкомандой, которая запускает другой скрипт 'mocha -R spec test/* - spec.js'. Переключатель '--watch' предназначен для другого скрипта (и поэтому мы« делаем », давая ему аргументы/параметры), поэтому мы предоставляем разделитель' - ', который позволяет нам переходить на' --watch'-переключатель другой скрипт? – mbigras

+0

Точно верно! Это будет хорошим ответом. – Ryan

ответ

1

Чтение another answer:

Двойное тире -- используется в Баш встроенных команд и многих других команд, чтобы обозначить конец командных опций

Так что в этом контексте:

  • npm является исполнителем
  • подкоманда, который работает под управлением другой сценарий mocha -R spec test/*-spec.js
  • --watch является переключатель предназначен для другого сценария
  • , потому что мы «сделали», давая npm аргументы и опции мы даем -- сепаратор, который позволяет нам передать переключатель --watch в другой сценарий