✨Discover storytelling in the AI age with Pixar's Matthew Luhn at Sanity Connect, May 8th—register now

Parts: Declare vs implement

How parts are defined also defines how they behave.

An implementable part is defined by setting a name and a description. It should not have a path set. If you find yourself wanting to set a path, you probably want to do the following:

[
  {
    "name": "part:foo/bar",
    "description": "Some really good description"
  },
  {
    "implements": "part:foo/bar",
    "path": "./some/part.js"
  }
]

A non-overridable part can be defined by setting a name and a path in the same declaration:

{
  "name": "part:@sanity/base/schema",
  "path": "./some/schema.js"
}

Was this article helpful?