尝试在VSCode上调试TypeScript程序时出现“ SyntaxError:无法在模块外部使用import语句”

时间:2020-04-26 12:16:06

标签: typescript visual-studio-code vscode-debugger

我正在用TypeScript为大学做一个项目,并尝试在使用Mocha运行测试时在vscode上进行调试。我正在使用以下启动.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Tests",
            "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
            "args": [
                "-u",
                "tdd",
                "--timeout",
                "999999",
                "--colors",
                "${workspaceFolder}/test/*.test.ts"
            ],
            "internalConsoleOptions": "openOnSessionStart",
            "skipFiles": [
                "<node_internals>/**"
            ]
        },
    ]
}

运行此配置时出现错误:

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1063:16)
    at Module._compile (internal/modules/cjs/loader.js:1111:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:996:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Module.require (internal/modules/cjs/loader.js:1036:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\mocha.js:334:36
    at Array.forEach (<anonymous>)
    at Mocha.loadFiles (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\mocha.js:331:14)
    at Mocha.run (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\mocha.js:809:10)
    at Object.exports.singleRun (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\cli\run-helpers.js:108:16)
    at exports.runMocha (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\cli\run-helpers.js:142:13)
    at Object.exports.handler (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\cli\run.js:292:3)
    at Object.runCommand (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\yargs\lib\command.js:242:26)
    at Object.parseArgs [as _parseArgs] (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\yargs\yargs.js:1096:28)
    at Object.parse (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\yargs\yargs.js:575:25)
    at Object.exports.main (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\lib\cli\cli.js:68:6)
    at Object.<anonymous> (c:\Users\owner\Documents\PPL\PPL-Assignment2\node_modules\mocha\bin\_mocha:10:23)
    at Module._compile (internal/modules/cjs/loader.js:1144:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:996:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

我首先要运行的测试称为q2-tests.test.ts并具有以下导入:

import fs from "fs";
import { expect } from 'chai';
import { evalL3program } from '../imp/L3-eval';
import { Value } from "../imp/L3-value";
import { Result, bind, makeOk } from "../imp/result";
import { parseL3 } from "../imp/L3-ast";

在没有调试的情况下,导入工作正常,当我运行npm test时也没有问题。

这似乎是导致问题的文件,但似乎并非特定于该文件,但通常是运行导入的问题。我尝试更改文件上的导入,但它在第一次导入时就抛出了此错误。

我对这两种工具(TypeScript \ JavaScript和Mocha)都是陌生的,而且我可能不怎么精通,因此我提供的信息可能会缺乏,或者可能太多,我只是没有知道在哪里寻找问题。如果您还需要更多,请告诉我。 另外,因为我是新手,所以希望能参考正确的位置来寻找答案并更好地理解问题,以及答案,我只是想从中学习。

1 个答案:

答案 0 :(得分:0)

结果是我使用了错误的启动配置。此页面有很多帮助: https://github.com/microsoft/vscode-recipes/tree/master/debugging-mocha-tests。 正确的配置是:

os.path.join()