tsserver:错误处理请求(无项目)

phr*_*eed 3 typescript visual-studio-code typescript2.0

在"Visual Studio Code"(v1.5.3)中处理TypeScript(v2.0 +)项目时,出现以下错误:

[Error - 10:03:50 AM] 'format' request failed with error.
Error processing request. No Project.
Error: No Project.
...
Run Code Online (Sandbox Code Playgroud)

我用详细日志重新启动了visual-studio-code.

export TSS_LOG='-level verbose -file <my-home>/tss.log'
Run Code Online (Sandbox Code Playgroud)

这提供了更多信息:

Info 1233 request: {"seq":522,"type":"request","command":"format","arguments":{"file":"/<my_project>/src/ts/<the-file>.ts","line":1,"offset":1,"endLine":616,"endOffset":1}}

Err 1234  Exception on executing command {"seq":522,"type":"request","command":"format","arguments":{"file":"/<my_project>/src/ts/<the-file>.ts","line":1,"offset":1,"endLine":616,"endOffset":1}}:
No Project.
Error: No Project.
    at Errors (<my_global_node>/lib/node_modules/typescript/lib/tsserver.js:50793:32)
    at ts.server.ts.server (<my_global_node>/lib/node_modules/typescript/lib/tsserver.js:50795:11)
    at ts (<my_global_node>/lib/node_modules/typescript/lib/tsserver.js:51775:7)
    at Object.<anonymous> (<my_global_node>/lib/node_modules/typescript/lib/tsserver.js:51776:3)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)

Info 1235 response:        
{"seq":0,"type":"response","command":"format","request_seq":522,"success":false,"message":"Error processing request. No Project.
Error: No Project.
    at Errors (/home/fred/.nvm/versions/node/v6.5.0/lib/node_modules/typescript/lib/tsserver.js:50793:32)
    at ts.server.ts.server (/home/fred/.nvm/versions/node/v6.5.0/lib/node_modules/typescript/lib/tsserver.js:50795:11)
    at ts (/home/fred/.nvm/versions/node/v6.5.0/lib/node_modules/typescript/lib/tsserver.js:51775:7)
    at Object.<anonymous> (/home/fred/.nvm/versions/node/v6.5.0/lib/node_modules/typescript/lib/tsserver.js:51776:3)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)"}
Run Code Online (Sandbox Code Playgroud)

tsserver是否认为我没有项目?

我在项目目录root中有'tsconfig.json'和'jsconfig.json'文件.我有一个运行tsc的'tasks.json'.我可以用其他类似结果的请求激发tsserver.

phr*_*eed 5

根据tsserver.js源代码

$ export TSS_LOG='-level verbose -file <my-home>/tss.log'
$ code
Run Code Online (Sandbox Code Playgroud)

详细日志文件包含答案但未报告为错误.

Info 2    Config file name: /<my-project>/src/ts/jsconfig.json
Err 3     Exception on executing command {"seq":0,"type":"request","command":"open","arguments":{"file":"<my-project>/src/ts/<a-class-file>.ts","fileContent":"..."}}: Unexpected end of input
<stack-trace>
Run Code Online (Sandbox Code Playgroud)

问题是'src'树顶部附近有一个空的'jsconfig.json'文件('src/ts/jsconfig.json').这导致在文件层次结构中搜索项目根太低.具体来说,找不到'tsconfig.json'文件导致'No Project'错误.

executeCommand()函数返回undefined,当关联的处理程序找不到包含该文件的项目时,会发生这种情况.这些文件通过'tsconfig.json'中的'files'或'include'选项与项目相关联.'tss.log'文件应包含有关打开文件的'Info'消息.确保打开您关注的所有文件,特别是检查"配置文件名"的位置,以确保获得正确的文件.

这个问题没有出现'tsc',因为它没有将'jsconfig.json'视为项目的指标.

典型的日志文件看起来应该更像这样:

Info 0    request: {"seq":0,"type":"request","command":"open","arguments":{"file":"/<my-project>/src/ts/folder1/ClassA.ts","fileContent":"..."}}
Info 1    Search path: /<my-project>/src/ts/folder1
Info 2    Config file name: /<my-project>/tsconfig.json
Err 3     Add recursive watcher for: /<my-project>
Err 4     Add recursive watcher for: /<my-project>/src/ts
Info 5    Opened configuration file /<my-project>/tsconfig.json
Info 6    Project (configured) 0
/<node-root>/lib/node_modules/typescript/lib/lib.es6.d.ts
/<my-project>/node_modules/@types/bluebird/index.d.ts
...a list of all the project files...

-----------------------------------------------
Open file roots of inferred projects:
Open files referenced by inferred or configured projects:
Open file roots of configured projects:
/<my-project>/src/ts/folder1/ClassA.ts
Perf 7    Async elapsed time (in milliseconds): 1060.9415
...
Run Code Online (Sandbox Code Playgroud)