working visual studio not method extensions code autocompletar typescript visual-studio-code

typescript - not - cómo depurar archivos de texto mecanografiado en código visual studio



visual studio code intellisense not working (8)

Acabo de escribir mi propia función de PowerShell como preLaunchTask. Esta puede ser una solución peor que las anteriores, pero puede agregar más flexibilidad para inyectar más tareas en el campo preLaunchTask. Porque actualmente no es compatible con la matriz y permite que solo se ejecute una tarea antes de iniciar la acción.

launch.json

{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Node.js", "program": "${file}", "preLaunchTask": "RebuildTypeScript", "outFiles": [ "${workspaceRoot}/js/**/*.js" ] } ] }

tasks.json

{ "version": "2.0.0", "tasks": [ { "type": "typescript", "tsconfig": "tsconfig.json", "group": { "kind": "build", "isDefault": true } }, { "taskName": "RebuildTypeScript", "type": "shell", "command": "Powershell ./RebuildTypeScript.ps1", "group": "none", "presentation": { "reveal": "never" } } ] }

RebuildTypeScript.ps1

$currentDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent function CompileTypeScriptFiles($folder) { $tsFiles = Get-ChildItem $folder -Filter "*.ts" -Recurse $tsFiles | ForEach-Object { $tsFile = $_.FullName; $options = $tsFile + " --outDir js --sourceMap" Start-Process "tsc" $options } } CompileTypeScriptFiles $currentDir

utilizando la versión 0.3 del código visual studio y no estoy seguro de cómo habilitar los mapas de origen y depurar el archivo ts

Me can''t launch program ''/Projects/app-server/server.ts''; enabling source maps might help el siguiente error: can''t launch program ''/Projects/app-server/server.ts''; enabling source maps might help can''t launch program ''/Projects/app-server/server.ts''; enabling source maps might help

¿Cómo habilito los mapas de origen y la depuración de mecanografía? El mapa de origen está configurado como verdadero en mi

tsconfig.json

{ "compilerOptions": { "target": "ES5", "module": "commonjs", "sourceMap": true } }

launch.json

{ "version": "0.1.0", // List of configurations. Add new configurations or edit existing ones. // ONLY "node" and "mono" are supported, change "type" to switch. "configurations": [ { // Name of configuration; appears in the launch configuration drop down menu. "name": "Launch server.ts", // Type of configuration. Possible values: "node", "mono". "type": "node", // Workspace relative or absolute path to the program. "program": "server.ts", // Automatically stop program after launch. "stopOnEntry": true, // Command line arguments passed to the program. "args": [], // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace. "cwd": ".", // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH. "runtimeExecutable": null, // Environment variables passed to the program. "env": { } }, { "name": "Attach", "type": "node", // TCP/IP address. Default is "localhost". "address": "localhost", // Port to attach to. "port": 5858 } ] }


Creo que se hizo más simple y simple en los lanzamientos ...

He instalado ts-node , por lo que mis archivos de configuración terminan muy simples ...

launch.json

{ "name": "Launch index.ts", "type": "node", "request": "launch", "runtimeArgs": [ "-r", "ts-node/register" ], "args": [ "${workspaceFolder}/src/index.ts" ] }

Hay dos locuras que vale la pena mencionar:

  • runtimeArgs : se pasa al nodo para registrar el nodo ts para manejar los archivos de TypeScript.
  • no hay propiedad del program El nombre del archivo TS para comenzar se da como primer argumento en su lugar.

De esta forma, no es necesario compilar TS a JS, incluso puede tener módulos escritos en TS no compilados en JS.


Esta configuración funciona bien para mí:

Distribución del proyecto

|-- .vscode |----- launch.json |-- bin |----- app.js |----- app.js.map |-- src |----- app.ts |-- node_modules |-- [..] |-- tsconfig.json |-- [...]

La idea es compilar el manuscrito en la carpeta src y colocarlo debajo de la carpeta bin .

tsconfig.json

Es importante sourceMap opción sourceMap .

{ "compilerOptions": { "emitDecoratorMetadata": true, "module": "commonjs", "target": "ES5", "outDir": "bin", "rootDir": "src", "sourceMap": true } }

launch.json

==== EDITAR ====

Esta es la configuración que estoy usando actualmente en Visual Studio Code v1:

{ "version": "0.2.0", "configurations": [ { "args": [], "cwd": "${workspaceRoot}", "env": { "NODE_ENV": "development" }, "externalConsole": false, "name": "DEBUG", "outDir": "${workspaceRoot}/bin", "preLaunchTask": "compile", "program": "${workspaceRoot}/src/app.ts", "request": "launch", "runtimeArgs": [ "--nolazy" ], "runtimeExecutable": null, "sourceMaps": true, "stopOnEntry": false, "type": "node" }, { "name": "Attach", "type": "node", "request": "attach", "port": 5858 } ] }

Tenga en cuenta que la clave preLaunchTask es extremadamente útil si está utilizando cualquier corredor de tareas como gulp porque el IDE puede detectar sus tareas por su nombre.

Corriendo

  1. Compila tus ts (escribiendo en un terminal rm -r bin/ ; tsc o ejecutando tu tarea de compilación)
  2. En código Visual play Launch type (nuestro nombre de configuración)
  3. ¡Disfrutar!

Esto es lo que me ha estado funcionando con las últimas TS y VsCode a partir de noviembre de 2017

La siguiente configuración lo ayudará a iniciar el servidor y depurar TS dentro del código VS

Así es como se ve mi tsconfig.json :

{ "compilerOptions": { "declaration": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "lib": ["es2017", "dom"], "module": "commonjs", "moduleResolution": "node", "outDir": "../build", "sourceMap": true, "target": "es2016", "typeRoots": [ "../node_modules/@types" ] }, "include": [ "**/*.ts" ], "exclude": [ "../node_modules", "../*.js" ] }

Y así es como se ve mi estructura de directorios :

Si presta atención, verá mi carpeta src y la carpeta de compilación (que contiene los archivos JS y de mapas transpilados resultantes) que coexisten una junto a la otra, lo que realmente me ayuda a mantener una estructura lógica de directorios.

Ok, ahora viene la configuración de lanzamiento :

{ "type": "node", "request": "launch", "name": "Start and Debug", "preLaunchTask": "nb-tsc-watch", "timeout": 10000, "program": "${workspaceFolder}/backend/src/app.ts", "restart": true, "cwd": "${workspaceRoot}", "outFiles": [ "${workspaceFolder}/backend//build/**/*.js" ], "sourceMaps": true }

Puede usar cualquier preLaunchTask que quiera usar, o incluso omitirlo. Si lo omite, tendrá que transladar TS a JS manualmente.

Esto es lo que hago en mi tarea nb-tsc-watch

{ "label": "nb-tsc-watch", "type": "typescript", "tsconfig": "backend/src/tsconfig.json", "option": "watch", "problemMatcher": [ "$tsc-watch" ] }


La configuración siguiente prueba mocha chai con puntos de interrupción. Funciona transfilando el directorio src a lib y luego ejecutando pruebas en lib con sourceMapping de nuevo a src.

.vscode / launch.json

{ "type": "node", "request": "launch", "preLaunchTask": "tsc", "name": "Run Mocha", "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha", "args": ["lib/**/*.js"], "cwd": "${workspaceRoot}", "sourceMaps": true, "outFiles": ["${workspaceRoot}/lib/**/*.js"] }

tsconfig.json

{ "compilerOptions": { "module": "commonjs", "sourceMap": true, "outDir": "lib", "target": "es6" }, "include": [ "src/**/*.ts" ], "exclude": [ "node_modules" ] }

.vscode / tasks.json

{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "tsc", "isShellCommand": true, "args": ["-p", "."], "showOutput": "silent", "problemMatcher": "$tsc" }

package.json para mostrar los módulos instalados. Los scripts son irrelevantes para la depuración.

"scripts": { "test": "mocha --compilers ts:ts-node/register src/**/*.spec.ts", "test:coverage": "nyc -e ''.ts'' npm test" }, "dependencies": { "@types/chai": "^3.4.35", "@types/mocha": "^2.2.39", "@types/node": "^7.0.5", "@types/sinon": "^1.16.35", "chai": "^3.5.0", "mocha": "^3.2.0", "nyc": "^10.1.2", "sinon": "^1.17.7", "ts-node": "^2.1.0", "typescript": "^2.2.1" }

  • Mac OSX 10.12.3 Sierra
  • Visual Studio Code 1.10.1
  • NodeJS v7.7.1

La respuesta de @manu me indicó la dirección correcta; sin embargo, con la última versión de VSCode, todavía tenía el mismo problema. Esta es la solución que funcionó para mí:

https://github.com/Microsoft/vscode/issues/13499

"outFiles": [ "${workspaceRoot}/js/*.js" ]


Para la versión más reciente de VSCode a partir de febrero de 2017, esto es lo que funcionó para mí (es una combinación de lo que tanto @manu como @tommy Falgout han proporcionado):

Supone que sus archivos json out están en una carpeta dest y su fuente en una carpeta src , respectivamente

/.vscode/launch.json

{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Launch", "sourceMaps": true, "stopOnEntry": true, "console": "internalConsole", "cwd": "${workspaceRoot}", "program": "${workspaceRoot}/src/main.ts", "outFiles": ["${workspaceRoot}/dest/*.js"] }, { "type": "node", "request": "attach", "name": "Attach to Process", "port": 5858, "outFiles": [] } ] }

tsconfig.json

{ "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "module": "commonjs", "outDir": "dest", "rootDir": "src" }, "exclude": [ "node_modules" ] }


2017/12/17
.vscode / launch.json `` `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": [ { "type": "node", "request": "launch", "program": "${workspaceRoot}/src/index.ts", "outFiles": [ "${workspaceRoot}/dist/index.js" ], "sourceMaps": true, "stopOnEntry": false, "args": [], "cwd": "${workspaceRoot}", "env": { "NODE_ENV": "development" }, "console": "internalConsole", "preLaunchTask": "compile", "name": "DEBUG" }, { "type": "node", "request": "attach", "name": "Attach to Process", "port": 5858 } ] }

.vscode / tasks.json

{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "compile", "type": "typescript", "tsconfig": "tsconfig.json", "problemMatcher": [ "$tsc" ], "group": { "kind": "build", "isDefault": true } } ] }

tsconfig.json

{ "compilerOptions": { "declaration": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "moduleResolution": "node", "target": "es5", "module": "commonjs", "sourceMap": true, "outDir": "dist", "rootDir": "src" }, "include": [ "**/*.ts" ], "exclude": [ "node_modules" ] }