Skip to content

Be a good citizen on Windows and use appropriate directories. #1124

Closed
@MicahZoltu

Description

@MicahZoltu

TL;DR: On Windows, node-gyp should install into %LOCALAPPDATA%/<vendor>/<product>.

In Linux, the accepted location to store :allthethings: is the home directory (~). On Windows, this is not appropriate and almost nothing should go into the root of the USERPROFILE directory or HOME directory. At the moment, node-gyp installs into ~ on Windows 10. It should instead install to somewhere more appropriate such as:

  • %APPDATA%/<vendor>/<product> for small user config of a particular product. Note, this is synced over a network/internet so nothing in here should be particularly large.
  • %LOCALAPPDATA%/<vendor>/<product> for large user config/extensions/per-user app installs/per-user caching. This folder is not synced over a network/internet so it can be big. Also, it is often redirected to a larger slower drive.
  • %PROGRAMDATA%/<vendor>/<product> for local (not synced over network) multi-user configuration data. This data is more permissive in that any user can read/write to it unlike %PROGRAMFILES% which is read only for everyone but admins. Care should be taken with regards to security any executable written here.
  • %PROGRAMFILES%/<vendor>/<product> for multi-user application data. Only admins can write here, but everyone can read. Good place to put installed software.

For the case of node_gyp, I assume that %LOCALAPPDATA%/<vendor>/<product> or %PROGRAMFILES%/<vendor>/<product> is the appropriate location, depending on whether there is an expectation of admin rights at install time.

Note: None of the above folders are %USERPROFILE% because the only thing that should use that folder are save dialogs. 😄

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions