Я пытаюсь настроить код Visual Studio для использования TypeScript (в пакете Node), я также использую ts-jest
/ Jest
для создания тестов, кроме того, у меня установлено расширение Jest.
Мне удалось выяснить, как заставить работать точки останова, но теперь я замечаю, что не могу правильно добавить свой код, я даже не уверен на 100%, что точки останова работают идеально.
При нажатии Кнопка «шаг», выполнение возобновляется и никогда не останавливается на следующей строке, единственный способ остановить это - установить другие точки останова там, где я хочу. Код останавливается в том месте, где были установлены точки останова AFAICT.
РЕДАКТИРОВАТЬ: На самом деле, шагание иногда останавливается снова, но на том, что кажется js код из реализации (например, console.log переходит к коду, связанному с ведением журнала, но никогда больше не повторяет мой код)
РЕДАКТИРОВАТЬ # 2: При попытке воспроизвести проблему с помощью В более простом проекте я понимаю, что больше не импортирую библиотеку, которую я использую (Phaser), чтобы решить проблему, надеюсь, это поможет определить причину проблемы.
РЕДАКТИРОВАТЬ # 3: Вот ссылка на что-то, что воспроизводит проблему, о которой я говорю: https://github.com/adtrevor/VSCodeDebugIssue Если вы хотите проверить это, просто клонируйте его, npm install
и запустите задачу «Отладка Jest Tests» из панель запуска / отладки. Установите точку останова на line 23
из hey.ts
(первая инструкция barFunction()
), отладчик остановится на этом, но если вы войдете в код, вы должны заметить, что в какой-то момент вы покидаете текущую область (после выполнения * 1028) * в моем случае) и никогда не возвращайтесь к нему.
РЕДАКТИРОВАТЬ # 4: Вот более полный пример, показывающий проблему https://github.com/adtrevor/TSVSCodeSOQuestion/. Если вы клонируете его, устанавливаете зависимости и устанавливаете точку останова в строке 156 файла ChunkManager.ts, вы заметите, что степпинг не работает должным образом, даже если я применил изменения @GiacomoDeLiberali. Возможно, ошибка связана с этим.
Я вообще не знаю, что не так с конфигурацией или где искать в первую очередь, поскольку у меня нет другого сообщения об ошибке, касающегося отладки. Вот содержимое моих файлов конфигурации:
launch. json
{
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Jest Tests",
"cwd": "${workspaceFolder}",
"args": [
"--inspect-brk",
"${workspaceRoot}/node_modules/.bin/jest",
"--runInBand",
"--config",
"${workspaceRoot}/jest.config.js"
],
"windows": {
"args": [
"--inspect-brk",
"${workspaceRoot}/node_modules/jest/bin/jest.js",
"--runInBand",
"--config",
"${workspaceRoot}/jest.config.json"
],
},
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
},
]
}
settings. json
{
"editor.fontSize": 14,
"workbench.colorTheme": "Default Light+",
"window.autoDetectColorScheme": true,
"debug.node.autoAttach": "off",
"jest.pathToConfig": "./jest.config.js",
}
jest.config. json
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
rootDir: './src/'
};
tsconfig. json
{
"compilerOptions": {
"target": "es6",
"module": "CommonJS",
"strict": true,
"noImplicitAny": true,
"allowJs": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"baseUrl": "./src",
"noEmit": false,
"outDir": "./build/",
"paths": {
"~/*": ["./*"]
},
"typeRoots": [
"node_modules/@types",
"node_module/phaser/types"
],
"types": [
"phaser",
"jest"
]
},
"include": [
"src/**/*"
]
}
И наконец мой Пакет. json:
{
"name": "mypackagename",
"description": "Client for the game",
"version": "0.1.0",
"dependencies": {
"phaser": "^3.22.0",
"tslib": "^1.11.1"
},
"devDependencies": {
"@types/jest": "^25.2.1",
"bufferutil": "^4.0.1",
"canvas": "^2.6.1",
"jest": "^25.2.7",
"ts-jest": "^25.3.1",
"typescript": "^3.8.3",
"utf-8-validate": "^5.0.2"
}
}
Видите ли вы что-нибудь необычное в этом конфиге? Вообще, что может быть причиной такого поведения?