Fixing Node-Gyp Errors:
One of the more annoying issues of developing on a full stack framework are NodeJS build errors. I just want my static assets! It's not even something important that's broken!
A common issue I've seen when building a project in a CI environment is related to using Node-Sass.
Node-Sass seems to use Node-gyp to compile … something … and fails!
The error is something like this:
gyp ERR! build error ... gyp ERR! node -v v12.13.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok Build failed with error code: 1 ... npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! email@example.com postinstall: `node scripts/build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the firstname.lastname@example.org postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
It turns out that Node-gyp is a package used for compiling stuff for NodeJS add-ons. Node-Sass happens to use it to compile native binaries that the project needs to build CSS.
Here's the important part:
The version of Node-Sass used is only compatible with certain versions of Node.
The Node-Sass GitHub page has an extremely important table showing version compatibilities:
What To Do
So, if you see Gyp build errors related to the
node-sass package, you need to ensure your version of Node matches the version of Node-Sass being installed.
Within a CI environment, the fix is usually to make sure you are using the correct NodeJS version (rather than changing the version of Node-Sass).
In Chipper CI, this means setting the Node version in the
environment section of the
.chipperci.yml file (Yaml docs here):
version: 1 # Important part here environment: php: 8.1 node: 14 # Node 14 for Node-sass 4.14+, but less than 5.0 services: pipeline: - name: Setup cmd: echo "setting up!"
Make sure those are lined up, and you should be all set!