#node.js #command-line-interface #flags
Вопрос:
В моем приложении командной строки я хочу распечатать либо:
- Вся командная строка, запустившая приложение
- Отдельные флаги и аргументы
- Скорее всего, и то, и другое.
Из process.argv
этого я могу получить доступ к приложению , которое я запускаю ([0]: node.exe
), файлу, который я запускаю ([1]: app.js
), и остальным переданным аргументам. Однако флаг узла, который я передаю, не является частью массива.
Так, например, для моего приложения с интенсивным использованием памяти моя команда:
узел —максимальный размер старого пространства=10240 app.js 18 ложных
И мой process.argv
массив-это:
0:'C:\Program Files\nodejs\node.exe'
1:'d:\Repos\exampleApp\app.js'
2:'18'
3:'false'
Как вы можете видеть, нет ссылки на флаг узла max-old-space-size
(на самом деле флаг V8, который передается).
Итак, в конечном счете, я пытаюсь получить доступ к этому переданному флагу.
Ответ №1:
В соответствии с Node.js документы, похоже process.execArgv
, это свойство, которое предоставляет эти флаги. Например process.argv
, это будет массив. В документах они называются «параметрами командной строки, специфичными для Node.js», а не «Node.js флаги».
Итак, для примера приведем команду:
узел —максимальный размер старого пространства=10240 app.js 18 ложных
… process.execArgv
массив будет:
0: '--max-old-space-size=10240'