Search code examples
reactjsgatsbynetlify

Gatsby Build Fails on Netlify Deploy


My site is built using Gatsby with continuous deployment to Netlify. I haven't touched my Gatsby site in two months. So, when I ran updates and added new content and deployed I ran into a breaking error on Netlify build.

Tried many things and spent too many hours on it already. Originally I was using only npm. After banging on that for a while I switched to yarn as was suggested on some online threads. Getting a different error message now with yarn, but still no luck with the deploy to Netlify.

This is probably something stupid simple. And I know I've had deploy/build issues before and fixed them, but... I'm at a loss at this point...

  1. My local build does work. No problems there, local gatsby develop and gatsby build both work.
  2. I've run all yarn upgrades possible.
  3. The problem seems to be one of these (maybe):
    1. Either something about the Sass file not building correctly and causing the whole thing to blow up, or
    2. Netlify doesn't think/see gatsby-cli installed so can't run the gatsby build command
  4. Site repo is now public: https://github.com/heyspacetime/spacetime-gatsby
    1. master and switch-to-yarn branches are a hot mess. Was working on PR #58 to sort out this deploy issue

Note: I've also posted this to Reddit: https://www.reddit.com/r/gatsbyjs/comments/bnfqij/help_netlify_deploy_fails_on_gatsby_build/

Deploy Error After Switching to Yarn

Here's the deploy details after trying to build on Netlify. I've linked a screenshot after the codeblock so you can see error highlighting.

10:42:15 PM: Build ready to start
10:42:18 PM: build-image version: 8e315e54bc4032a32e73290be556cde4f8348c12
10:42:18 PM: build-image tag: v2.8.2
10:42:18 PM: buildbot version: 1c5d5da2a8a19e94f07a53f82f5c9b010bad1249
10:42:18 PM: Fetching cached dependencies
10:42:18 PM: Failed to fetch cache, continuing with build
10:42:18 PM: Starting to prepare the repo for build
10:42:18 PM: No cached dependencies found. Cloning fresh repo
10:42:18 PM: git clone [email protected]:heyspacetime/spacetime-gatsby
10:42:22 PM: Preparing Git Reference pull/58/head
10:42:22 PM: Found netlify.toml. Overriding site configuration
10:42:22 PM: Starting build script
10:42:22 PM: Installing dependencies
10:42:23 PM: Downloading and installing node v8.16.0...
10:42:23 PM: Downloading https://nodejs.org/dist/v8.16.0/node-v8.16.0-linux-x64.tar.xz...
10:42:24 PM:                    0.3%
10:42:24 PM: 
###########
10:42:24 PM:                                      16.3%
10:42:24 PM: 
##########################################################
10:42:24 PM:             81.6%
10:42:24 PM: 
#######################################
10:42:24 PM: ################################# 100.0%
10:42:24 PM: Computing checksum with sha256sum
10:42:24 PM: Checksums matched!
10:42:26 PM: Now using node v8.16.0 (npm v6.4.1)
10:42:26 PM: Attempting ruby version 2.3.6, read from environment
10:42:27 PM: Using ruby version 2.3.6
10:42:28 PM: Using PHP version 5.6
10:42:28 PM: Started restoring cached node modules
10:42:28 PM: Finished restoring cached node modules
10:42:28 PM: Started restoring cached yarn cache
10:42:28 PM: Finished restoring cached yarn cache
10:42:28 PM: Installing yarn at version 1.5.1
10:42:28 PM: Installing Yarn!
10:42:28 PM: > Downloading tarball...
10:42:28 PM: [1/2]: https://yarnpkg.com/downloads/1.5.1/yar
10:42:28 PM: n-v1.5.1.tar.gz --> /tmp/yarn.tar.gz.unnZulZpgP
10:42:28 PM:   % Total    % Recei
10:42:28 PM: ved % Xferd  Average Speed   Time    Time     Time  Curr
10:42:28 PM: ent
10:42:28 PM:          Dload  Upload   Total   Spent
10:42:28 PM:  Left  Speed
10:42:28 PM: 
  0
10:42:28 PM: 0    0     0    0     0      0      0 --:--:-- --:-
10:42:28 PM: -:-- --:--:--     0
10:42:28 PM: 
100    91  100    91    0     0    511
10:42:28 PM:     0 --:--:-- --:--:-- --:--:--   514
10:42:28 PM: 
  0     0    0   608    0     0   1591      0 --:
10:42:28 PM: --:-- --:--:-- --:--:--  1591
10:42:28 PM: 
100  914k  100  914k    0     0  1226k      0 --:--:-- --:-
10:42:28 PM: -:-- --:--:-- 1226k
10:42:28 PM: [2/2]: https://yarnpkg.co
10:42:28 PM: m/downloads/1.5.1/yarn-v1.5.1.tar.gz.asc --> /tmp/yarn.tar.gz.unnZ
10:42:28 PM: ulZpgP.asc
10:42:29 PM: 
100    95  100    95    0     0   2061      0 --:--:-
10:42:29 PM: - --:--:-- --:--:--  2061
10:42:29 PM: 
  0     0    0   612    0     0   3939
10:42:29 PM:    0 --:--:-- --:--:-- --:--:--  3939
10:42:29 PM: 
  0   832    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
10:42:29 PM: 
100   832  100   832    0     0   3750
10:42:29 PM:       0 --:--:-- --:--:-- --:--:--  812k
10:42:29 PM: > Verifying integrity...
10:42:29 PM: gpg: Signature made Mon 26 Feb 2018 07:01:19 PM UTC using RSA key ID B6FF4DE3
10:42:29 PM: gpg: Good signature from "Yarn Packaging <[email protected]>"
10:42:29 PM: gpg: Note: This key has expired!
10:42:29 PM: Primary key fingerprint: 72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310
10:42:29 PM:      Subkey fingerprint: E219 30C4 D0A4 AA46 1858  1F7A E074 D16E B6FF 4DE3
10:42:29 PM: > GPG signature looks good
10:42:29 PM: > Extracting to ~/.yarn...
10:42:29 PM: > Adding to $PATH...
10:42:29 PM: > We've added the following to your /opt/buildhome/.profile
10:42:29 PM: > If this isn't the profile of your current shell then please add the following to your correct profile:
10:42:29 PM: export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
10:42:29 PM: 
10:42:30 PM: > Successfully installed Yarn 1.5.1! Please open another terminal where the `yarn` command will now be available.
10:42:30 PM: Installing NPM modules using Yarn version 1.5.1
10:42:31 PM: yarn install v1.5.1
10:42:31 PM: [1/4] Resolving packages...
10:42:33 PM: [2/4] Fetching packages...
10:42:55 PM: info [email protected]: The platform "linux" is incompatible with this module.
10:42:55 PM: info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
10:42:55 PM: [3/4] Linking dependencies...
10:42:55 PM: warning " > [email protected]" has incorrect peer dependency "[email protected]".
10:42:55 PM: warning "gatsby > pnp-webpack-plugin > [email protected]" has unmet peer dependency "typescript@*".
10:42:55 PM: warning "gatsby-plugin-transition-link > babel-preset-gatsby-package > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
10:42:55 PM: warning "gatsby-plugin-transition-link > babel-preset-gatsby-package > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
10:42:55 PM: warning "gatsby-plugin-transition-link > babel-preset-gatsby-package > @babel/plugin-proposal-optional-chaining > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
10:43:05 PM: [4/4] Building fresh packages...
10:43:12 PM: success Saved lockfile.
10:43:12 PM: Done in 41.23s.
10:43:12 PM: NPM modules installed using Yarn
10:43:12 PM: Started restoring cached go cache
10:43:12 PM: Finished restoring cached go cache
10:43:12 PM: Installing Go version 1.10
10:43:18 PM: unset GOOS;
10:43:18 PM: unset GOARCH;
10:43:18 PM: export GOROOT='/opt/buildhome/.gimme_cache/versions/go1.10.linux.amd64';
10:43:18 PM: export PATH="/opt/buildhome/.gimme_cache/versions/go1.10.linux.amd64/bin:${PATH}";
10:43:18 PM: go version >&2;
10:43:18 PM: export GIMME_ENV="/opt/buildhome/.gimme_cache/env/go1.10.linux.amd64.env"
10:43:18 PM: go version go1.10 linux/amd64
10:43:18 PM: Installing missing commands
10:43:18 PM: Verify run directory
10:43:18 PM: Executing user command: npm run build
10:43:18 PM: > [email protected] build /opt/build/repo
10:43:18 PM: > gatsby build
10:43:20 PM: success open and validate gatsby-configs — 0.011 s
10:43:21 PM: success load plugins — 1.030 s
10:43:21 PM: success onPreInit — 0.118 s
10:43:21 PM: success delete html and css files from previous builds — 0.005 s
10:43:21 PM: success initialize cache — 0.008 s
10:43:21 PM: success copy gatsby files — 0.022 s
10:43:21 PM: success onPreBootstrap — 0.004 s
10:43:22 PM: success source and transform nodes — 0.413 s
10:43:22 PM: success building schema — 0.226 s
10:43:22 PM: success createPages — 0.018 s
10:43:22 PM: success createPagesStatefully — 0.072 s
10:43:22 PM: success onPreExtractQueries — 0.002 s
10:43:22 PM: success update schema — 0.024 s
10:43:22 PM: success extract queries from components — 0.078 s
10:43:22 PM: success run static queries — 0.001 s
10:43:22 PM: success run page queries — 0.019 s — 20/20 1114.65 queries/second
10:43:22 PM: success write out page data — 0.006 s
10:43:22 PM: success write out redirect data — 0.001 s
10:43:23 PM: success Build manifest and related icons — 0.776 s
10:43:23 PM: success onPostBootstrap — 0.778 s
10:43:23 PM: info bootstrap finished - 5.200 s
10:43:42 PM: error Generating JavaScript bundles failed
10:43:42 PM: 
10:43:42 PM:   Error: ./src/assets/stylesheets/styles.scss
10:43:42 PM:   Module build failed (from ./node_modules/gatsby/node_modules/mini-css-extract-  plugin/dist/loader.js):
10:43:42 PM:   ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loa  der.js):
10:43:42 PM:   Error: ENOENT: no such file or directory, scandir '/opt/build/repo/node_module  s/node-sass/vendor'
10:43:42 PM:       at Object.fs.readdirSync (fs.js:904:18)
10:43:42 PM:       at Object.getInstalledBinaries (/opt/build/repo/node_modules/node-sass/lib  /extensions.js:131:13)
10:43:42 PM:       at foundBinariesList (/opt/build/repo/node_modules/node-sass/lib/errors.js  :20:15)
10:43:42 PM:       at foundBinaries (/opt/build/repo/node_modules/node-sass/lib/errors.js:15:  5)
10:43:42 PM:       at Object.module.exports.missingBinary (/opt/build/repo/node_modules/node-  sass/lib/errors.js:45:5)
10:43:42 PM:       at module.exports (/opt/build/repo/node_modules/node-sass/lib/binding.js:1  5:30)
10:43:42 PM:       at Object.<anonymous> (/opt/build/repo/node_modules/node-sass/lib/index.js  :14:35)
10:43:42 PM:       at Module._compile (/opt/build/repo/node_modules/v8-compile-cache/v8-compi  le-cache.js:178:30)
10:43:42 PM:       at Object.Module._extensions..js (module.js:664:10)
10:43:42 PM:       at Module.load (module.js:566:32)
10:43:42 PM:       at tryModuleLoad (module.js:506:12)
10:43:42 PM:       at Function.Module._load (module.js:498:3)
10:43:42 PM:       at Module.require (module.js:597:17)
10:43:42 PM:       at require (/opt/build/repo/node_modules/v8-compile-cache/v8-compile-cache  .js:159:20)
10:43:42 PM:       at Object.sassLoader (/opt/build/repo/node_modules/sass-loader/lib/loader.  js:46:72)
10:43:42 PM:       at runLoaders (/opt/build/repo/node_modules/gatsby/node_modules/webpack/li  b/NormalModule.js:301:20)
10:43:42 PM:       at /opt/build/repo/node_modules/loader-runner/lib/LoaderRunner.js:367:11
10:43:42 PM:       at /opt/build/repo/node_modules/loader-runner/lib/LoaderRunner.js:233:18
10:43:42 PM:       at runSyncOrAsync (/opt/build/repo/node_modules/loader-runner/lib/LoaderRu  nner.js:143:3)
10:43:42 PM:       at iterateNormalLoaders (/opt/build/repo/node_modules/loader-runner/lib/Lo  aderRunner.js:232:2)
10:43:42 PM:       at Array.<anonymous> (/opt/build/repo/node_modules/loader-runner/lib/Loade  rRunner.js:205:4)
10:43:42 PM:       at Storage.finished (/opt/build/repo/node_modules/enhanced-resolve/lib/Cac  hedInputFileSystem.js:43:16)
10:43:42 PM:       at provider (/opt/build/repo/node_modules/enhanced-resolve/lib/CachedInput  FileSystem.js:79:9)
10:43:42 PM:       at /opt/build/repo/node_modules/graceful-fs/graceful-fs.js:90:16
10:43:42 PM:       at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
10:43:42 PM:    @ ./src/components/layout.js 6:0-43
10:43:42 PM:    @ ./src/pages/services/technical-seo.js
10:43:42 PM:    @ ./.cache/async-requires.js
10:43:42 PM:    @ ./.cache/production-app.js
10:43:42 PM: 
10:43:42 PM: npm
10:43:42 PM:  ERR! code ELIFECYCLE
10:43:42 PM: npm ERR!
10:43:42 PM:  errno 1
10:43:42 PM: npm
10:43:42 PM:  ERR! [email protected] build: `gatsby build`
10:43:42 PM: npm ERR! Exit status 1
10:43:42 PM: npm ERR!
10:43:42 PM: npm ERR! Failed at the [email protected] build script.
10:43:42 PM: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
10:43:43 PM: npm
10:43:43 PM: ERR! A complete log of this run can be found in:
10:43:43 PM: npm ERR!     /opt/buildhome/.npm/_logs/2019-05-11T03_43_42_997Z-debug.log
10:43:43 PM: Skipping functions preparation step: no functions directory set
10:43:43 PM: Caching artifacts
10:43:43 PM: Started saving node modules
10:43:43 PM: Finished saving node modules
10:43:43 PM: Started saving yarn cache
10:43:43 PM: Finished saving yarn cache
10:43:43 PM: Started saving pip cache
10:43:43 PM: Finished saving pip cache
10:43:43 PM: Started saving emacs cask dependencies
10:43:43 PM: Finished saving emacs cask dependencies
10:43:43 PM: Started saving maven dependencies
10:43:43 PM: Finished saving maven dependencies
10:43:43 PM: Started saving boot dependencies
10:43:43 PM: Finished saving boot dependencies
10:43:43 PM: Started saving go dependencies
10:43:44 PM: Finished saving go dependencies
10:43:46 PM: Error running command: Build script returned non-zero exit code: 1
10:43:46 PM: Failing build: Failed to build site
10:43:46 PM: failed during stage 'building site': Build script returned non-zero exit code: 1
10:43:46 PM: Finished processing build request in 1m28.562451072s
10:43:46 PM: Shutting down logging, 0 messages pending

https://user-images.githubusercontent.com/4457883/57573280-f61abe00-73ea-11e9-8aa9-673f32572202.png

I'm expecting the Gatsby site to build on deploy to Netlify. The master branch is my production site, but Netlify also creates test builds for branches.


Solution

  • The problem turned out to be incredibly simple.

    My Gatsby site has been live on Netlify for over a year now. The entire time I've had an environment variable set in the Netlify UI for ENV=production. Originally added that to make CSS compile and link correctly on the live site.

    So, what was happening is my devDependencies were not installing at build time on Netlify. Resulting in unclear errors.

    The Fix

    Changed to ENV=development and the build process went through like a charm.

    Still need to test the live site thoroughly, but I believe the problem is solved!