
Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag storeThis is a classic monorepo/workspace issue where Gatsby's build process is crawling into your Studio directory and attempting to resolve imports it finds in your schema files. The key question is: why is Gatsby even looking at your Studio schemas?
The most likely culprit is that you're importing or referencing something from your Studio schemas in your Gatsby site code, or Gatsby's webpack configuration is inadvertently including the Studio directory in its module resolution scope.
Here's how to fix this:
First, check if your Gatsby code (web directory) is importing anything from studio/schemas. Search your web codebase for imports like:
import something from '../../studio/schemas/...'If you find any, remove them. Your Gatsby site should only consume content from Sanity via gatsby-source-sanity, not by importing schema files directly.
Add this to your gatsby-node.js to explicitly tell webpack to ignore your Studio folder:
exports.onCreateWebpackConfig = ({ actions }) => {
actions.setWebpackConfig({
resolve: {
alias: {
// Prevent webpack from resolving studio directory
'../studio': false,
'../../studio': false,
}
}
})
}Or use webpack's externals configuration:
exports.onCreateWebpackConfig = ({ actions, stage }) => {
if (stage === 'build-javascript' || stage === 'build-html') {
actions.setWebpackConfig({
externals: {
'react-icons/fi': 'react-icons/fi'
}
})
}
}If you're using npm/yarn workspaces, ensure your workspace configuration properly isolates the projects. In your root package.json:
{
"private": true,
"workspaces": [
"web",
"studio"
]
}Make sure your Gatsby build command runs from within the web directory, not from the root:
cd web && gatsby buildCI environments might be handling symlinks or hoisted dependencies differently than your local machine. Ensure your CI build:
web and studio directoriesIf you need an immediate fix, install react-icons in your web project:
cd web
npm install react-iconsThis works around the resolution issue but doesn't address the root cause.
The real solution is #1 and #2 combined: ensure your Gatsby site isn't importing Studio code, and configure webpack to ignore the Studio directory entirely. Your Studio schemas shouldn't be part of your Gatsby build process—Gatsby should only interact with Sanity through the gatsby-source-sanity plugin to fetch content via the Content Lake API.
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.
Content operations
Content backend


The only platform powering content operations
By Industry


Tecovas strengthens their customer connections
Build and Share

Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag store