{"id":18274,"library":"dependent-build","title":"dependent-build","description":"Configures multi-project dependency builds to ensure downstream projects are not broken. Version 0.1.6 is an early-stage (pre-1.0) tool that reads a YAML configuration file and triggers dependent project builds, typically in CI pipelines. It targets small repositories and enforces an order of builds when dependencies change. Only supports Node >= 4. The API and configuration format may change.","status":"active","version":"0.1.6","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install dependent-build","lang":"bash","label":"npm"},{"cmd":"yarn add dependent-build","lang":"bash","label":"yarn"},{"cmd":"pnpm add dependent-build","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"parsing YAML configuration file","package":"js-yaml","optional":false},{"reason":"command-line argument parsing","package":"minimist","optional":false}],"imports":[{"note":"The package does not export a default. The named export 'dependentBuild' is the main function.","wrong":"const dependentBuild = require('dependent-build')","symbol":"dependentBuild","correct":"import { dependentBuild } from 'dependent-build'"},{"note":"No default export exists. Use named import.","wrong":"import dependentBuild from 'dependent-build'","symbol":"default","correct":"import { dependentBuild } from 'dependent-build'"},{"note":"'run' is another named export for programmatic execution.","wrong":"const run = require('dependent-build').run","symbol":"run","correct":"import { run } from 'dependent-build'"}],"quickstart":{"code":"import { dependentBuild } from 'dependent-build';\n\n// Configuration example (dependent-build.yml):\n// projects:\n//   - name: lib-a\n//     depends:\n//       - lib-b\n//   - name: lib-c\n//     depends:\n//       - lib-a\n//       - lib-b\n\ndependentBuild({\n  config: 'dependent-build.yml',\n  cwd: process.cwd(),\n  silent: false\n}).then(() => {\n  console.log('Build order resolved and triggered');\n}).catch(err => {\n  console.error('Build failed:', err);\n});","lang":"typescript","description":"Shows programmatic usage: import named function, call with options, and handle promise resolution."},"warnings":[{"fix":"Pin to a specific minor version (e.g., 0.1.x) and test upgrades.","message":"Configuration format and API may change without warning in future versions.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"","message":"No deprecated features documented yet.","severity":"deprecated","affected_versions":""},{"fix":"Use node-version-check to skip dependent-build on older Node versions.","message":"Only supports Node >= 4. If CI matrix includes older Node versions, builds will fail.","severity":"gotcha","affected_versions":">=0"},{"fix":"Create a 'dependent-build.yml' file or provide custom path via options.","message":"YAML configuration file must exist at the project root; otherwise, the tool throws an error.","severity":"breaking","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install js-yaml' as the package declares it as a peer dependency.","cause":"Missing dependency js-yaml when using dependent-build programmatically without installing it.","error":"Error: Cannot find module 'js-yaml'"},{"fix":"Ensure a 'dependent-build.yml' file exists in the root directory or pass a custom 'config' path.","cause":"Configuration file is missing or not located at the expected path.","error":"dependent-build: config file not found: dependent-build.yml"},{"fix":"Remove circular dependency by restructuring project dependencies.","cause":"Circular dependency in the YAML configuration (e.g., A depends on B, B depends on A).","error":"dependent-build: Project 'X' dependency cycle detected"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}