{"record":{"id":"1a17295ad574d77c","repo":"angular/angular-cli","slug":"package-json-stringify-packagename-has-no-buil","errorCode":null,"errorMessage":"Package ${JSON.stringify(packageName)} has no builders defined.","messagePattern":"Package (.+?) has no builders defined\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/angular_devkit/architect/node/node-modules-architect-host.ts","lineNumber":159,"sourceCode":"      throw new Error(\n        'Circular builder alias references detected: ' + [...seenBuilders, builderStr],\n      );\n    }\n\n    const [packageName, builderName] = builderStr.split(':', 2);\n    if (!builderName) {\n      throw new Error('No builder name specified.');\n    }\n\n    // Resolve and load the builders manifest from the package's `builders` field, if present\n    const packageJsonPath = localRequire.resolve(packageName + '/package.json', {\n      paths: [basePath],\n    });\n\n    const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')) as { builders?: string };\n    const buildersManifestRawPath = packageJson['builders'];\n    if (!buildersManifestRawPath) {\n      throw new Error(`Package ${JSON.stringify(packageName)} has no builders defined.`);\n    }\n\n    let buildersManifestPath = path.normalize(buildersManifestRawPath);\n    if (path.isAbsolute(buildersManifestRawPath) || buildersManifestRawPath.startsWith('..')) {\n      throw new Error(\n        `Package \"${packageName}\" has an invalid builders manifest path: \"${buildersManifestRawPath}\"`,\n      );\n    }\n\n    buildersManifestPath = path.join(path.dirname(packageJsonPath), buildersManifestPath);\n    const buildersManifest = JSON.parse(\n      readFileSync(buildersManifestPath, 'utf-8'),\n    ) as BuilderSchema;\n    const buildersManifestDirectory = path.dirname(buildersManifestPath);\n\n    // Attempt to locate an entry for the specified builder by name\n    const builder = buildersManifest.builders?.[builderName];\n    if (!builder) {","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/angular/angular-cli/blob/bb72145f9ab45aee29f523236b3a25cd0813a841/packages/angular_devkit/architect/node/node-modules-architect-host.ts#L141-L177","documentation":"A builder package must declare a 'builders' field in its package.json pointing to its builders manifest JSON. resolveBuilder throws when the resolved package.json has no such field, meaning the package exports no builders.","triggerScenarios":"Referencing a builder in an ordinary npm package (no 'builders' key in package.json), or referencing the wrong package name in the builder identifier.","commonSituations":"Typo'd package name so an unrelated package is resolved; using a library package instead of a builder package; a package that removed builder support in a newer version.","solutions":["Verify the package name in the builder string is the intended builder package.","Check the package.json of the package for a 'builders' field.","Use a different/older package version that defines builders, or publish the manifest."],"exampleFix":"// before (package.json of my-builders)\n{\"name\": \"my-builders\", \"version\": \"1.0.0\"}\n// after\n{\"name\": \"my-builders\", \"version\": \"1.0.0\", \"builders\": \"./builders.json\"}","handlingStrategy":"validation","validationCode":"const pkg = require.resolve(`${packageName}/package.json`, { paths: [process.cwd()] });\nif (!require(pkg).builders) throw new Error(`Package \"${packageName}\" has no builders defined.`);","typeGuard":null,"tryCatchPattern":"try { await host.resolveBuilder(`${packageName}:x`); } catch (e) { if (String(e.message).includes('has no builders defined')) { /* pick the correct builder package */ } else throw e; }","preventionTips":["Confirm the package is a builder package (has 'builders' in package.json) before referencing it.","Check `npm view <pkg> builders` before adding a dependency.","Pin package versions to avoid upgrades that drop builder support."],"tags":["angular","builder","package"],"backgroundTag":"package-missing-builders-manifest","analyzedSha":"bb72145f9ab45aee29f523236b3a25cd0813a841","analyzedAt":"2026-08-30T02:47:34.745Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}