Я пытаюсь создать конфигурацию в файле launch.json, которая будет работать npm test
в папке, в которой .js
файл находится. Выполняется npm test
вручную в терминале работает нормально, принимая соответствующую команду от scripts
часть моей package.json
:
"scripts": {
"start": "node --experimental-json-modules nodeserver.js",
"test": "export MY_VAR=abc && node --experimental-json-modules nodeserver.js"
},
В частности, при запуске npm test
непосредственно в терминале, env var, указанный в test
строка сценария вступает в силу, и --experimental-json-modules
флаг передается node
.
Это мой запуск.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"command": "npm test",
"name": "Run npm test",
"request": "launch",
"type": "node-terminal"
}
]
}
Это в значительной степени соответствует одному из предопределенных вариантов, предложенных в редакторе, и очень похоже на это.
Но когда я запускаю эту конфигурацию на nodeserver.js
файл, я получаю:
Кажется, он работает node
без флага, который я указал в конфигурации? Что я неправильно понимаю в том, как это launch.json
схема работает?
РЕДАКТИРОВАТЬ чем больше я играл, тем больше мне кажется, что конфигурация просто полностью игнорируется, так что она использует настройки по умолчанию node.js конфигурация... Я выбираю конфигурацию из выпадающего списка и нажимаю значок воспроизведения:
Должно ли это сработать?
Помимо бега npm start
в терминале единственный "автоматический" способ заставить это работать-открыть package.json
и нажав на маленькую кнопку отладки, которая появляется рядом с scripts
метка:
Но я хотел бы выяснить, как использовать launch.json
правильно, чтобы я мог передавать переменные среды и т. Д. Через Это вместо этого.
launch.json
тоже... похоже, что конфигурация просто полностью игнорируется, так что она использует настройки по умолчанию node.js конфигурация запуска.