{"record":{"id":"f46ee2ea7de51e11","repo":"angular/angular-cli","slug":"could-not-find-the-builderconf-builder-s-node","errorCode":null,"errorMessage":"Could not find the '${builderConf}' builder's node package.","messagePattern":"Could not find the '(.+?)' builder's node package\\.","errorType":"exception","errorClass":"CommandModuleError","httpStatus":null,"severity":"error","filePath":"packages/angular/cli/src/command-builder/architect-base-command-module.ts","lineNumber":193,"sourceCode":"\n  protected async getArchitectTargetOptions(target: Target): Promise<Option[]> {\n    const architectHost = this.getArchitectHost();\n    let builderConf: string;\n\n    try {\n      builderConf = await architectHost.getBuilderNameForTarget(target);\n    } catch {\n      return [];\n    }\n\n    let builderDesc: NodeModulesBuilderInfo;\n    try {\n      builderDesc = await architectHost.resolveBuilder(builderConf);\n    } catch (e) {\n      assertIsError(e);\n      if (e.code === 'MODULE_NOT_FOUND') {\n        this.warnOnMissingNodeModules();\n        throw new CommandModuleError(`Could not find the '${builderConf}' builder's node package.`);\n      }\n\n      throw e;\n    }\n\n    return parseJsonSchemaToOptions(\n      new json.schema.CoreSchemaRegistry(),\n      builderDesc.optionSchema as json.JsonObject,\n      true,\n    );\n  }\n\n  private warnOnMissingNodeModules(): void {\n    const basePath = this.context.workspace?.basePath;\n    if (!basePath) {\n      return;\n    }\n","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/angular/angular-cli/blob/bb72145f9ab45aee29f523236b3a25cd0813a841/packages/angular/cli/src/command-builder/architect-base-command-module.ts#L175-L211","documentation":"When resolving an architect target's builder (e.g. @angular-devkit/build-angular:browser), the CLI loads the builder's node package. If resolution fails with MODULE_NOT_FOUND, it converts the error into a CommandModuleError saying the builder's node package could not be found.","triggerScenarios":"angular.json references a builder package that is not installed (missing from node_modules), a typo in the builder package name, using a custom/community builder without npm install, or node_modules pruned/corrupted.","commonSituations":"Fresh clone without 'npm install'; switching branches that added a new builder dependency; pnpm/yarn workspaces hoisting issues; package renamed in a CLI major upgrade (e.g. @angular-devkit/build-angular migration).","solutions":["Run 'npm install' (or your package manager) in the project root","Check angular.json 'builder' strings for typos and confirm the package is in package.json dependencies/devDependencies","Install the specific builder package, e.g. 'npm i -D @angular-devkit/build-angular'","Delete node_modules and the lockfile and reinstall if resolution is corrupted"],"exampleFix":"// before (angular.json)\n\"builder\": \"@angular-devkit/build-anguler:browser\"\n// after\n\"builder\": \"@angular-devkit/build-angular:browser\" // and: npm i -D @angular-devkit/build-angular","handlingStrategy":"validation","validationCode":"import { resolveSync } from 'resolve';\nconst builderPkg = 'angular.json' && getBuilderPackage('angular.json', 'app:build');\nif (!resolveSync(builderPkg, { basedir: process.cwd() })) {\n  throw new Error(`${builderPkg} not installed; run npm install`);\n}","typeGuard":null,"tryCatchPattern":"try {\n  await runNgCommand('build');\n} catch (e) {\n  if (String(e.message).includes(\"builder's node package\")) {\n    execSync('npm install', { stdio: 'inherit' });\n  } else throw e;\n}","preventionTips":["Always npm install after cloning or switching branches","Keep all builders used in angular.json listed in package.json","Beware package renames in Angular version migrations and run 'ng update' migrations","Use a lockfile so CI installs the same builder packages"],"tags":["angular-cli","architect","node-modules","builder"],"backgroundTag":"module-not-found","analyzedSha":"bb72145f9ab45aee29f523236b3a25cd0813a841","analyzedAt":"2026-08-30T02:47:34.745Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}