2017-02-13 1 views
3

В чем разница между args и runtimeArgs в launch.json?В чем разница между args и runtimeArgs в файле запуска VSCode.json?

// Optional arguments passed to the runtime executable 
"runtimeArgs": [] 
// Command line arguments passed to the program 
"args": [] 

Является ли программа не такой же, как исполняемый файл?

Дополнительная информация и мотивации вопроса:

Я занимаюсь разработкой nodejs приложения. В моей package.json, у меня есть start сценарий:

"start": "electron ./src/Main/main.js arg2", и в моем приложении код, я получить доступ process.argv[2] который получает меня arg2, поэтому, когда я бегу npm start, мое приложение работает как задумано.

Когда я запускаю приложение с VSCode, однако это не так, и причина в том, что я не поставлял никаких дополнительных аргументов в launch.json. Где я должен поставить эти аргументы? process.argv, по-видимому, содержит аргументы, приведенные в args или runtimeArgs, хотя он также придерживается некоторого аргумента --debug-brk, которого я не хочу.

Я хочу иметь возможность использовать process.argv последовательно при запуске приложения из командной строки (npm start) или запустить его с VSCode.

ответ

2

Я думаю, что это во многом объясняется в Node debugging docs:

Вместо запуска программы Node.js непосредственно с узлом, вы можете использовать «НПМ» сценарии или другие инструменты, задача бегуна непосредственно из конфигурации запуска:

  • Любая программа доступна на PATH (например, 'НПМ', 'мокко', 'Глоток' и т.д.) могут быть использованы для runtimeExecutable атрибута [...]

runtimeExecutable не программа, которую вы хотите отлаживать, но исполняемый файл используется для ее запуска. Похоже, что runtimeArgs соответствует runtimeExecutable как args является program.

Если вас интересует, как это работает подробно, here's Соответствующая часть реализации debugAdapter.ts.

Смежные вопросы