-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Self-service
- I'd be willing to implement a fix
Describe the bug
Yarn pnp can't load synckit worker hence prettier plugin fails to run.
Why do I file this against yarn? Everything works as expected when installing the dependencies with npm.
To reproduce
Use NodeJS 20.9.0
Clone https://github.com/shermify/eslint-plugin-repro
> yarn install
> export NODE_PATH=".yarn/sdks"
Setting the NODE_PATH is equivalent to setting the VS Code eslint.nodePath setting.
start node REPL and execute the following commands (to ensure to mimic the executing since a VS Code extension):
require.resolve('eslint');
We will load the eslint npm module from .yarn/sdks
const library = require('eslint');
async function main() { const eslint = new (await library.loadESLint())(); const report = await eslint.lintText(`var test = "hello";`); console.log(report); }
main().then(() => { console.log('Promise resolved'); } ).catch((error) => { console.error(error); process.exitCode = 1; });
Observe: the promise never resolves. You can't even terminate NodeJS using Ctrl+C. You have to kill it.
I debugged it in the context of the VS Code ESLint extension and the findings are here: microsoft/vscode-eslint#1856 (comment) and in the following comments.
Environment
System:
OS: Linux 5.15 Debian GNU/Linux 11 (bullseye) 11 (bullseye)
CPU: (20) x64 12th Gen Intel(R) Core(TM) i7-12700K
Binaries:
Node: 20.9.0 - /tmp/xfs-426f4fe7/node
Yarn: 4.3.0 - /tmp/xfs-426f4fe7/yarn
npm: 10.1.0 - ~/.nvs/default/bin/npm
pnpm: 9.1.1 - /usr/local/share/npm-global/bin/pnpm
Additional context
No response