-
today, i try to install fresh LazyVim in my wsl arch linux, its working well, but when i try to install vtsls with mason (lazyextra, typescript), its give me error like this [ERROR][2025-07-01 12:04:05] ...p/_transport.lua:36 "rpc" "vtsls" "stderr" "node:internal/modules/cjs/loader:1408\n throw err;\n ^\n\nError: Cannot find module '/home/ah/.local/share/nvim/mason/@vtsls/language-server/bin/vtsls.js'\n at Module._resolveFilename (node:internal/modules/cjs/loader:1405:15)\n at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)\n at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)\n at Module._load (node:internal/modules/cjs/loader:1215:37)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)\n at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)\n at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:152:5)\n at node:internal/main/run_main_module:33:47 {\n code: 'MODULE_NOT_FOUND',\n requireStack: []\n}\n\nNode.js v24.2.0\n"
i try to investigate further, and found as below. 07:07:27 PM msg_show.list_cmd vtsls :!vtsls
07:07:27 PM msg_show.shell_err vtsls node:internal/modules/cjs/loader:1408
throw err;
^
Error: Cannot find module '/home/ah/.local/share/vnvim/mason/@vtsls/language-server/bin/vtsls.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1405:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)
at Module._load (node:internal/modules/cjs/loader:1215:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:152:5)
at node:internal/main/run_main_module:33:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v24.2.0
I am not sure why, but $ bat .local/share/vnvim/mason/bin/vtsls
1 │ #!/bin/sh
2 │ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3 │
4 │ case `uname` in
5 │ *CYGWIN*|*MINGW*|*MSYS*)
6 │ if command -v cygpath > /dev/null 2>&1; then
7 │ basedir=`cygpath -w "$basedir"`
8 │ fi
9 │ ;;
10 │ esac
11 │
12 │ if [ -x "$basedir/node" ]; then
13 │ exec "$basedir/node" "$basedir/../@vtsls/language-server/bin/vtsls.js" "$@"
14 │ else
15 │ exec node "$basedir/../@vtsls/language-server/bin/vtsls.js" "$@"
16 │ fi
~ ⌚ 19:17:36
$ echo $(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
dirname: invalid option -- 's'
Try 'dirname --help' for more information.
~ ⌚ 19:17:44
$ echo $(echo "$0" | sed -e 's,\\,/,g')
-zsh
~ ⌚ 19:20:11
$ dirname -zsh
dirname: invalid option -- 's'
Try 'dirname --help' for more information.
~ ⌚ 19:20:22
$ dirname -z sh
.%
~ ⌚ 19:20:26
$ the if i run my terminal with [ah@DESKTOP-HD67VPS bin]$ bat vtsls
1 │ #!/bin/sh
2 │ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3 │
4 │ case `uname` in
5 │ *CYGWIN*|*MINGW*|*MSYS*)
6 │ if command -v cygpath > /dev/null 2>&1; then
7 │ basedir=`cygpath -w "$basedir"`
8 │ fi
9 │ ;;
10 │ esac
11 │
12 │ if [ -x "$basedir/node" ]; then
13 │ exec "$basedir/node" "$basedir/../@vtsls/language-server/bin/vtsls.js" "$@"
14 │ else
15 │ exec node "$basedir/../@vtsls/language-server/bin/vtsls.js" "$@"
16 │ fi
$ echo $(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
.
[ah@DESKTOP-HD67VPS bin]$ pwd
/home/ah/.local/share/vnvim/mason/bin
[ah@DESKTOP-HD67VPS bin]$ so full path from Still Looking for Solution 😄 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
for context, i already start a discussion in lazyvim repo LazyVim/LazyVim#6215 (i had close it) , but its seem a mason problem because the runner script is platform independent (the vtsls.cmd in windows, and vtsls shell script in linux). |
Beta Was this translation helpful? Give feedback.
-
Ok I am back with solution. (Disclaimer i am noob linux user). Note:
For example this pyright
~/.local/share/nvim/mason/packages/pyright/node_modules/.bin ⌚ 10:51:28
$ ls
pyright pyright-langserver pyright-langserver.ps1
pyright.cmd pyright-langserver.cmd pyright.ps1
way to solveto solve this vtsls / pyright cant find module [ERROR][2025-07-29 09:29:19] ...p/_transport.lua:36 "rpc" "pyright-langserver" "stderr"
"node:internal/modules/cjs/loader:1372\n throw err;\n ^\n\nError: Cannot find module
'/home/ah/.local/share/nvim/mason/pyright/langserver.index.js'\n
at Module._resolveFilename (node:internal/modules/cjs/loader:1369:15 undefined)\n
at defaultResolveImpl .defaultResolveImpl (node:internal/modules/cjs/loader:1025:19 undefined)\n
at resolveForCJSWithHooks .resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22 undefined)\n
at Module._load (node:internal/modules/cjs/loader:1179:37 undefined)\n
at TracingChannel.traceSync (node:diagnostics_channel:322:14 undefined)\n
at wrapModuleLoad .wrapModuleLoad (node:internal/modules/cjs/loader:235:24 undefined)\n
at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:152:5 undefined)\n at node:internal/main/run_main_module:33:47 {\n code: 'MODULE_NOT_FOUND',\n requireStack: []\n}\n\nNode.js v24.4.1\n"
Formatted by https://st.elmah.io
you need change basedir variable to use //from
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
// to
basedir=$(dirname $(readlink -f $0) | sed -e 's,\\,/,g') ~/.local/share/nvim/mason/bin ⌚ 10:59:19
$ ls -lar
total 36
lrwxrwxrwx 1 ah ah 55 Jul 29 09:22 stylua -> /home/ah/.local/share/nvim/mason/packages/stylua/stylua
lrwxrwxrwx 1 ah ah 73 Jul 29 09:22 shfmt -> /home/ah/.local/share/nvim/mason/packages/shfmt/shfmt_v3.12.0_linux_amd64
lrwxrwxrwx 1 ah ah 60 Jul 29 09:25 ruff -> /home/ah/.local/share/nvim/mason/packages/ruff/venv/bin/ruff
lrwxrwxrwx 1 ah ah 86 Jul 29 09:27 pyright-langserver -> /home/ah/.local/share/nvim/mason/packages/pyright/node_modules/.bin/pyright-langserver
lrwxrwxrwx 1 ah ah 75 Jul 29 09:27 pyright -> /home/ah/.local/share/nvim/mason/packages/pyright/node_modules/.bin/pyright
lrwxrwxrwx 1 ah ah 105 Jul 29 09:25 prisma-language-server -> /home/ah/.local/share/nvim/mason/packages/prisma-language-server/node_modules/.bin/prisma-language-server
lrwxrwxrwx 1 ah ah 81 Jul 29 09:22 lua-language-server -> /home/ah/.local/share/nvim/mason/packages/lua-language-server/lua-language-server after changing |
Beta Was this translation helpful? Give feedback.
Ok I am back with solution. (Disclaimer i am noob linux user).
Note:
For example this pyright ~/.local/share/nvim/mason/packages/pyright/node_modules/.bin ⌚ 10:51:28 $ ls pyright pyright-langserver pyright-langserver.ps1 pyright.cmd pyright-langserver.cmd pyright.ps1
way to solve
to solve this vtsls / pyright cant find module