vscode typescript 无法读取未定义的 属性 'compilerOptions'

vscode typescript Cannot read property 'compilerOptions' of undefined

我正在尝试通过查看这个问题 and this article https://cmatskas.com/typescript-and-vs-code/ 来配置 vscode 来编译打字稿,但出现错误。需要帮助。

我的项目树:

文件server.ts是我要编译的,但稍后我会有更多.ts个文件。

这是我的tasks.json

{
    "version": "0.1.0",

    // The command is tsc. Assumes that tsc has been installed using npm install -g typescript
    "command": "tsc",

    // The command is a shell script
    "isShellCommand": true,

    // Show the output window only if unrecognized errors occur.
    "showOutput": "always",

    "windows": {
        "command": "tsc"
    },

    // args is the HelloWorld program to compile.
    "args": ["-p", "."],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

和我的tsconfig.json

{ "compilerOptions": { "target": "ES5", "module": "commonjs", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false, "sourceRoot": "/" }, "exclude": [ "node_modules" ] }

我的tsc version: 消息 TS6029: 版本 1.7.5

详细错误:

C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31084 var jsonOptions = json["compilerOptions"]; ^ TypeError: Cannot read property 'compilerOptions' of undefined at getCompilerOptions (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31084:35) at Object.parseJsonConfigFileContent (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31074:22) at parseConfigFile (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31351:40) at performCompilation (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31362:45) at Object.executeCommandLine (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31336:9) at Object.<anonymous> (C:\Users\User\AppData\Roaming\npm\node_modules\typescript\lib\tsc.js:31635:4) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12)

当 Visual Studio 代码运行 typescript 编译器时,它相对于根文件夹运行,但您的 tsconfig.json 实际上在 ./server 文件夹中。这就是编译器无法在根目录中找到您的 tsconfig.json 文件的原因。您需要做的就是在您的 tasks.json 中,您需要更新 args 参数以如下所示,假设您的整个项目都在服务器文件夹中。也就是说,您的客户端文件夹中没有任何需要由打字稿编译器编译的 .ts 文件。

// args is the HelloWorld program to compile.
"args": ["-p", "./server"],

如果你的client文件夹也有ts文件需要编译,那么你需要将tsconfig.json移动到根文件夹,typescript编译器才能找到它。