ts-patch icon indicating copy to clipboard operation
ts-patch copied to clipboard

Yarn 4 replaces patched typescript on every install

Open AlCalzone opened this issue 7 months ago • 0 comments

I recently noticed that ts-patch was uninstalled often, after upgrading to Yarn 4. I'm often switching branches with different dependencies and therefore invoking yarn install often. It seems that every time I do this, the modifications to TypeScript get undone:

dominic@X1:~/Repositories/node-zwave-js$ yarn
➤ YN0000: · Yarn 4.3.1
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: ┌ Post-resolution validation
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed
➤ YN0000: ┌ Link step
➤ YN0000: └ Completed in 2s 537ms
➤ YN0000: · Done with warnings in 2s 874ms


dominic@X1:~/Repositories/node-zwave-js$ yarn ts-patch check
Checking TypeScript v5.5.3 installation in /home/dominic/Repositories/node-zwave-js/node_modules/typescript

[-] tsc.js is not patched.
[-] tsserver.js is not patched.
[-] tsserverlibrary.js is not patched.
[-] typescript.js is not patched.


dominic@X1:~/Repositories/node-zwave-js$ yarn ts-patch install
[+] ts-patch installed!


dominic@X1:~/Repositories/node-zwave-js$ yarn
➤ YN0000: · Yarn 4.3.1
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: ┌ Post-resolution validation
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed
➤ YN0000: ┌ Link step
➤ YN0000: └ Completed in 2s 509ms
➤ YN0000: · Done with warnings in 2s 857ms


dominic@X1:~/Repositories/node-zwave-js$ yarn ts-patch check
Checking TypeScript v5.5.3 installation in /home/dominic/Repositories/node-zwave-js/node_modules/typescript

[-] tsc.js is not patched.
[-] tsserver.js is not patched.
[-] tsserverlibrary.js is not patched.
[-] typescript.js is not patched.

I'm using the pnpm linker setting in Yarn, but I don't think this makes a difference. My postinstall script contains ts-patch install -s, but it seems this isn't executed every time.

AlCalzone avatar Jul 25 '24 08:07 AlCalzone