Closed
Description
What / Why
I'm trying to install a local package like npm install ../package-name
. This fails when on an exFAT partition with the following stacktrace:
1201 verbose stack Error: EISDIR: illegal operation on a directory, symlink 'E:\Repos\react-git-info' -> 'E:\Repos\abhyudayasharma.github.io\node_modules\react-git-info'
1202 verbose cwd E:\Repos\abhyudayasharma.github.io
1203 verbose Windows_NT 10.0.18363
1204 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Abhyudaya\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install" "..\\react-git-info\\"
1205 verbose node v12.13.1
1206 verbose npm v6.14.4
1207 error code EISDIR
1208 error syscall symlink
1209 error path E:\Repos\react-git-info
1210 error dest E:\Repos\abhyudayasharma.github.io\node_modules\react-git-info
1211 error errno -4068
1212 error EISDIR: illegal operation on a directory, symlink 'E:\Repos\react-git-info' -> 'E:\Repos\abhyudayasharma.github.io\node_modules\react-git-info'
1213 verbose exit [ -4068, true ]
exFAT does not support symlinks: https://docs.microsoft.com/en-us/windows/win32/fileio/filesystem-functionality-comparison#functionality
Since exFAT is not the only filesystem without support of symlinks, there should be a fallback. One I could think of is copying files to node_modules
and watching the directory of the package to be installed for changes.
When
- Installing a local package on an exFAT formatted drive.
Where
- Windows 10 1909, Version 10.0.18363.815
- npm 6.14.4
- Node v12.13.1
I have tested only on Windows, but this should be a problem in all other operating systems.
How
Current Behavior
- Installation of the package fails due to the filesystem not supporting symlinks.
Steps to Reproduce
- On an exFAT partition, clone any npm package. In another npm project, install the cloned package with a relative path. The installation will fail because npm is unable to make a symlink.
Expected Behavior
- Installation of local packages should work like it does with NTFS and ext4.
Who
- n/a
References
- n/a