When I first switched my website over to PNPM instead of Yarn, I noticed that my Netlify build were failing, although I set the build command to
pnpm build. Here's a solution for everyone having the same issue, since I couldn't find any relevant information out there.
Switching to PNPM locally is almost instant. it's as easy as removing the older
yarn.lock file and then installing PNPM. (you can install it using a number of different ways, more information here)
(Invoke-WebRequest 'https://get.pnpm.io/v6.14.js' -UseBasicParsing).Content | node - add --global pnpm
PNPM uses a very familiar syntax, so I won't explain further. You just have to track the
package.json and newly generated
pnpm-lock.yaml file to install dependencies on Netlify
Netlify offers a few different ways to interact with the build-environment. The easiest (and the one I use), is using the Netlify UI on their website. I will explain further how to use PNPM via the UI, but if you use a
netlify.toml file, the approach should be roughly the same.
Actually, the approach is easy. Netlify doesn't have PNPM installed on their buildenvironment, but they do have NPM & Yarn installed. So we can mis-use them to install PNPM and go on from there. Just add the following as a buildcommand:
pnpm build || ( npm install pnpm && pnpm build )
The script will try to run
pnpm build at first. If it fails, because PNPM is not installed, it will install PNPM using NPM and then proceed to run