fivem-typescript-boilerplate icon indicating copy to clipboard operation
fivem-typescript-boilerplate copied to clipboard

Incompatibility with Node.js v16.9.1 in lru-cache v10.0.1

Open CodeByRat opened this issue 2 years ago • 3 comments

Description

When using lru-cache version 10.0.1 in a FiveM server running on Node.js v16.9.1, an error is thrown indicating an incompatible Node.js version. The error message is as follows:

Error: [yarn] error [email protected]: The engine "node" is incompatible with this module. Expected version "14 || >=16.14". Got "16.9.1"

Steps to Reproduce

Set up a FiveM server running on Node.js v16.9.1. Create a TypeScript project with lru-cache version 10.0.1 as a dependency. Attempt to build or run the project.

Expected Behavior

The project should build and run without error.

Actual Behavior

The above error message is thrown, indicating an incompatible Node.js version.

Workaround

Downgrading to an earlier version of lru-cache resolved the issue. I am using 5.1.1

CodeByRat avatar Sep 30 '23 01:09 CodeByRat

Have you tried to just build the project yourself, instead of letting fxserver build it for you?

itschip avatar Sep 30 '23 09:09 itschip

This happened to me, too.

Have you tried to just build the project yourself, instead of letting fxserver build it for you?

The server does it automatically in the first run (sometimes even with the .yarn.installed). The issue happens because of the dep path-scurry after 1.6.3 when they upgraded lru-cache (https://github.com/isaacs/path-scurry/commit/0a38f917c4edf3dcb260303544564d343c2cdd72)

There were other scripts affected too, mainly scripts that use DiscordJS (like EasyAdmin)

I use this as a workaround, overriding path-scurry and lru-cache in case some other dep uses it.

  "resolutions": {
    "path-scurry": "1.6.3",
    "lru-cache": "7.18.0"
  }

DmACKGL avatar Oct 16 '23 16:10 DmACKGL

This still happens. Even if .yarn.installed is present.

  "resolutions": {
    "path-scurry": "1.6.3",
    "lru-cache": "7.18.0"
  }

Tried this also but: warning Resolution field "[email protected]" is incompatible with requested version "path-scurry@^1.10.1" - which in fact makes it work but just not desired

VIRUXE avatar Jan 09 '24 09:01 VIRUXE