当前位置: 首页 > 知识库问答 >
问题:

VSCode调试类型脚本应用程序

卫弘图
2023-03-14

我有一个用TypeScript编写的应用程序,它使用import语句。我按照这里的说明在VSCode中启用调试。VSCode build命令正在创建输出。js和。将文件映射到tsc。但是,当我尝试调试时,会出现以下错误:

Debugger attached.
/Users/integrityinspired/Documents/Dev/basilisk-island/dist/out-tsc/server/src/app.js:1
(function (exports, require, module, __filename, __dirname) { import { initQueues } from '../../shared/firebase-app';
                                                            ^^^^^^
SyntaxError: Unexpected token import
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:528:28)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Timeout.Module.runMain [as _onTimeout] (module.js:590:10)
    at tryOnTimeout (timers.js:232:11)
    at Timer.listOnTimeout (timers.js:202:5)
Waiting for the debugger to disconnect... 

{
    // 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": ["-w", "-p", "."],
    "showOutput": "silent",
    "isWatching": true,
    "problemMatcher": "$tsc-watch"
}

值得注意的是,类型的导入是从js中删除的,而函数的导入失败了。

应用程序。ts

import { HandlerDef } from '../../shared/handler/handler-def';
import { initQueues } from '../../shared/firebase-app';

const handlers: HandlerDef[] = [
];
initQueues('app', handlers);

app.js(由VSCode编译)

import { initQueues } from '../../shared/firebase-app';
const handlers = [];
initQueues('app', handlers);
//# sourceMappingURL=/Users/integrityinspired/Documents/Dev/basilisk-island/server/src/app.js.map

firebase应用程序。ts

import * as firebase from 'firebase';
import * as Queue from 'firebase-queue';
import { HandlerDef } from './handler/handler-def';
import { createQueue } from './queue-wrapper';

export function initQueues(queue: string, handlers: HandlerDef[]): void {
    const config = firebaseConfig();
    firebase.initializeApp(config);
    let envSuffix: string = '';
    if (process.env.NODE_ENV === 'development') {
        console.log('Running in dev mode');
        envSuffix = '-dev';
    }
    const ref = firebase.database().ref(`/queue${envSuffix}/${queue}`);
    handlers.forEach(def => {
        createQueue(ref, def);
    });
}

tsconfig。json

{
  "compilerOptions": {
    "baseUrl": "",
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es6",
      "dom"
    ],
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "outDir": "dist/out-tsc",
    "sourceMap": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ]
  },
  "exclude": [
    "client",
    "node_modules",
    "public",
    "typings/browser",
    "typings/browser.d.ts"
  ]
}

发射json:

{
    // Use IntelliSense to find out which attributes exist for node debugging
    // Use hover for the description of the existing attributes
    // For further information visit https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Server",
            "type": "node2",
            "request": "launch",
            "program": "${workspaceRoot}/dist/out-tsc/server/src/app.js",
            "cwd": "${workspaceRoot}",
            "env": {
                "NODE_ENV": "development"
            },
            "outFiles": [],
            "sourceMaps": true
        },
        {
            "name": "Attach to Process",
            "type": "node2",
            "request": "attach",
            "port": 9229,
            "outFiles": [],
            "sourceMaps": true
        }
    ]
}

共有1个答案

终翔
2023-03-14

tsconfig中。json我需要将“模块”:“es6”更改为“模块”:“commonjs”

 类似资料:
  • 问题内容: 我有VSCode 0.5.0。我将compilerOptions标志设置为“ ES6”,然后编辑器开始将我的ES6代码识别为正确的。我安装了通天塔。我的Mocha测试使用babel编译器,并且我的测试通过了。使用babel- node启动我的应用程序时,它可以从命令行正常运行。当我从VSCode调试应用程序时,它在没有ES6支持的情况下启动,并且该应用程序因ES6语法问题而失败。是否有

  • 问题:我目前正在尝试使用KoaJS、Typescript和Docker设置一个新的NodeJS项目。到目前为止,安装工作按计划进行,但远程调试给我带来了一些问题-至少对我的理解是这样的。 如果我启动应用程序并使用“附加到节点.js/ Chrome”调试设置从Webstorm调试器工作...在某种程度上。我遇到了断点,但相同的文件(即内核.ts)再次从泊坞窗工作(在Webstorm中)打开。 它看起

  • 使用的是 WNMP 的集成环境,服务启用后,如何用 vscode 对 php 代码进行断点调试?之前是使用 PHPStorm 进行断点调试的,想知道 vscode 能否实现类似的断点调试功能

  • 在最近的vscode版本中,python扩展现在使用debugpy作为默认的Python调试器,取代了旧的ptvsd。 我需要在一个软件程序中调试一个python脚本,该程序适用于python 3.2,而不适用于较新的版本。不幸的是,debugpy只适用于python 有没有办法在vscode python扩展中使用另一个调试器,或者选择使用哪个调试器?换句话说,是否可以调试python

  • 我使用这个配置将全局css配置应用到基于JavaScript的React项目中: css文件: 阿普泰克斯 但是没有应用例如字体样式。你知道基于TypeScript的React项目合适的配置是什么吗?

  • 本指南将介绍如何使用 VSCode debugging 为您自己的 Electron 项目和 native Electron 代码库(Electron codebase)调试。 调试您的 Electron 应用 主进程 1. Open an Electron project in VSCode. $ git clone git@github.com:electron/electron-quick-