vuejs / vetur

Vue tooling for VS Code.
https://vuejs.github.io/vetur/
MIT License
5.75k stars 593 forks source link

Could not find source file in network place. #1490

Open qas612820704 opened 4 years ago

qas612820704 commented 4 years ago

Info

Problem

Could not find source file in network place (using samba).

It's fine when file is in local.

Loaded bundled typescript@3.6.3.
Vetur initialized
c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\node_modules\typescript\lib\typescript.js:125675
                throw error;
                ^

Error: Could not find source file: '\\xxx.yyy\workspace\sandbox\hello-world\src\components\Todos\Header.vue'.
    at getValidSourceFile (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\node_modules\typescript\lib\typescript.js:125671:29)
    at Object.getSyntacticDiagnostics (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\node_modules\typescript\lib\typescript.js:125879:52)
    at Object.doValidation (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\dist\modes\script\javascript.js:73:32)
    at languageModes.getAllLanguageModeRangesInDocument.forEach.lmr (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\dist\services\vls.js:359:51)
    at Array.forEach (<anonymous>)
    at VLS.doValidate (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\dist\services\vls.js:357:72)
    at VLS.validateTextDocument (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\dist\services\vls.js:351:34)
    at Timeout.pendingValidationRequests.(anonymous function).setTimeout [as _onTimeout] (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\server\dist\services\vls.js:340:18)
    at ontimeout (timers.js:425:11)
    at tryOnTimeout (timers.js:289:5)
[Info  - 上午9:52:00] Connection to server got closed. Server will restart.
[Error - 上午9:52:00] Request textDocument/colorPresentation failed.
Error: Connection got disposed.
    at Object.dispose (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\main.js:876:25)
    at Object.dispose (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-languageclient\lib\client.js:71:35)
    at LanguageClient.handleConnectionClosed (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-languageclient\lib\client.js:2167:42)
    at LanguageClient.handleConnectionClosed (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-languageclient\lib\main.js:152:15)
    at closeHandler (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-languageclient\lib\client.js:2154:18)
    at CallbackList.invoke (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\events.js:62:39)
    at Emitter.fire (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\events.js:120:36)
    at closeHandler (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\main.js:226:26)
    at CallbackList.invoke (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\events.js:62:39)
    at Emitter.fire (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\events.js:120:36)
    at IPCMessageReader.fireClose (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\messageReader.js:111:27)
    at ChildProcess.IPCMessageReader.eventEmitter.on (c:\Users\user\.vscode\extensions\octref.vetur-0.22.6\node_modules\vscode-jsonrpc\lib\messageReader.js:213:45)
    at ChildProcess.emit (events.js:187:15)
    at maybeClose (internal/child_process.js:962:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)

Reproducible Case

  1. Install vetur
  2. Open a .vue file in network place (like \\xxx.yyy\project\index.vue)
Deracination commented 4 years ago

I'm seeing a very similar problem (Win10 samba to linux server):

Message: Request textDocument/hover failed with message: Could not find source file: '\\gokyo\frontend\dashboard\src\views\dashboard\Home.vue'.
  Code: -32603 

The file is open in vscode and exists at that path. A .vue file in the higher level directory '\gokyo\frontend\dashboard\src\' doesn't have this problem.

Mapping the samba path to a network share provides a work-around. net share l: \linux\path\

octref commented 4 years ago

\xxx.yyy\project\index.vue

How is that a valid file path with two leading \\ and no drive letter?

Object.doValidation (c:\Users\user.vscode\extensions\octref.vetur-0.22.6\server\dist\modes\script\javascript.js:73:32)

Can you go to this line, add a console.log(doc.uri);, restart VS Code, and show me what's on your Output -> Vue Language Server?

Deracination commented 4 years ago

It's a samba network path

qgates commented 4 years ago

@octref any update on this? In a similar scenario to that described in #1758 if I add export default to a function in myfile.ts and save in vscode, I still get a red wavy line and 'cannot find default export' error in another file when I `import myfunc from './myfile'. The only workaround is to restart vscode. It's a real PITA!