Skip to content

[BUG] Local package install fails on exFAT partition #1232

Closed
@AbhyudayaSharma

Description

@AbhyudayaSharma

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixingRelease 6.xwork is associated with a specific npm 6 release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions