-
-
Notifications
You must be signed in to change notification settings - Fork 320
Description
I've searched open issues for similar requests
- Yes
I've manually reviewed logs to find potential errors
- Yes
I've recently downloaded the latest plugin version of mason.nvim
- Yes
Problem description
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, this also give error when try to use pyright
- vtsls
[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 undefined)\n
at defaultResolveImpl .defaultResolveImpl (node:internal/modules/cjs/loader:1061:19 undefined)\n
at resolveForCJSWithHooks .resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22 undefined)\n
at Module._load (node:internal/modules/cjs/loader:1215: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.2.0\n"- pyright
[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"
i know script inside bin is linked to real binary for every package ( at least for this npm installed package).
Note
I am not sure if it fixed in latest version, should i report to lazyvim instead? but i believe it from mason config
mason.nvim ~
⚠️ WARNING mason.nvim version v1.11.0- ADVICE:
- The latest version of mason.nvim is: v2.0.1
Solution I Found
to 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 readlink -f because its linked and using only echo $0 will outputing current folder
//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-serverafter changing echo $0 to readlink -f $0 its work as expected. i am not sure with other env like *CYGWIN* | *MINGW* | *MSYS*, but at least it work for me.
Expected behavior
vtslss / pyright should work on typescript / python file.
Steps to reproduce
- install fresh neovim with lazyvim, on WSL (archlinux)
- install lazyextra for python / typescript lang
- restart nvim, mason will download package
- try to open typescript / python.
Affected packages
npm installed package (i only try on vtsls and pyright)
Neovim version (>= 0.10.0)
$ nvim --version
NVIM v0.11.3
Build type: RelWithDebInfo
LuaJIT 2.1.1753364724
Run "nvim -V1 -v" for more info
Operating system/version
Linux DESKTOP-HD67VPS 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 GNU/Linux
Healthcheck
==============================================================================
mason: 5 ⚠️
mason.nvim ~
- ⚠️ WARNING mason.nvim version v1.11.0
- ADVICE:
- The latest version of mason.nvim is: v2.0.1
- ✅ OK PATH: prepend
- ✅ OK Providers:
mason.providers.registry-api
mason.providers.client
- ✅ OK neovim version >= 0.7.0
mason.nvim [Registries] ~
- ✅ OK Registry `github.com/mason-org/mason-registry version: 2025-07-29-godly-yew` is installed.
mason.nvim [Core utils] ~
- ✅ OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send`
- ✅ OK wget: `GNU Wget 1.25.0 built on linux-gnu.`
- ✅ OK curl: `curl 8.15.0 (x86_64-pc-linux-gnu) libcurl/8.15.0 OpenSSL/3.5.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 nghttp3/1.10.1`
- ✅ OK gzip: `gzip 1.14-modified`
- ✅ OK tar: `tar (GNU tar) 1.35`
- ✅ OK bash: `GNU bash, version 5.3.3(1)-release (x86_64-pc-linux-gnu)`
- ✅ OK sh: `Ok`
mason.nvim [Languages] ~
- ⚠️ WARNING Ruby: not available
- ADVICE:
- spawn: ruby failed with exit code - and signal -. ruby is not executable
- ⚠️ WARNING Composer: not available
- ADVICE:
- spawn: composer failed with exit code - and signal -. composer is not executable
- ⚠️ WARNING PHP: not available
- ADVICE:
- spawn: php failed with exit code - and signal -. php is not executable
- ⚠️ WARNING RubyGem: not available
- ADVICE:
- spawn: gem failed with exit code - and signal -. gem is not executable
- ✅ OK luarocks: `/usr/sbin/luarocks 3.12.2`
- ✅ OK cargo: `cargo 1.87.0 (99624be96 2025-05-06)`
- ✅ OK Go: `go version go1.24.5 linux/amd64`
- ✅ OK node: `v24.4.1`
- ✅ OK python: `Python 3.13.5`
- ✅ OK JAVA_HOME: `openjdk version "21.0.7" 2025-04-15 LTS`
- ✅ OK java: `openjdk version "21.0.7" 2025-04-15 LTS`
- ✅ OK julia: `julia version 1.11.5`
- ✅ OK javac: `javac 21.0.7`
- ✅ OK pip: `pip 25.1.1 from /usr/lib/python3.13/site-packages/pip (python 3.13)`
- ✅ OK python venv: `Ok`
- ✅ OK npm: `10.9.2`
mason.nvim [GitHub] ~
- ✅ OK GitHub API rate limit. Used: 0. Remaining: 5000. Limit: 5000. Reset: Tue 29 Jul 2025 12:20:15 PM WIB.
Screenshots or recordings
No response