{"id":13216,"library":"gear","title":"Gear.js Build System","description":"Gear.js was an extensible build system designed for both Node.js and browser environments, focusing on asynchronous task chaining. It provided basic building blocks that could be combined for complex builds, allowing tasks to be easily defined and extended via NPM or local files. Its key features included advanced flow control for task execution and the ability to run tasks in parallel. The project's last stable version, 0.9.7, was released approximately nine years ago, and the package has since been abandoned. There is no active development, maintenance, or modern JavaScript/TypeScript support. Developers should consider modern alternatives due to security concerns and incompatibility with current ecosystems.","status":"abandoned","version":"0.9.7","language":"javascript","source_language":"en","source_url":"http://github.com/yahoo/gear","tags":["javascript","task","build"],"install":[{"cmd":"npm install gear","lang":"bash","label":"npm"},{"cmd":"yarn add gear","lang":"bash","label":"yarn"},{"cmd":"pnpm add gear","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Contains common build tasks like linting, minifying, and deploying assets, and is explicitly recommended for full functionality.","package":"gear-lib","optional":false}],"imports":[{"note":"Gear.js primarily uses CommonJS `require` syntax. The Queue class is a named export from the main 'gear' module. Attempting to use ESM `import` will result in errors.","wrong":"import { Queue } from 'gear';","symbol":"Queue","correct":"const Queue = require('gear').Queue;"}],"quickstart":{"code":"const { Queue } = require('gear');\n\n// Install recommended tasks library\n// npm install gear gear-lib\n\n// Example: Chaining tasks to read, inspect, and write a file\nnew Queue()\n .read('foo.js')\n .log('read foo.js')\n .inspect() // Prints file contents and metadata to console\n .write('foobarbaz.js')\n .run(function (err) {\n    if (err) {\n        console.error('Build failed:', err);\n        return;\n    }\n    console.log('Build complete: foobarbaz.js created.');\n });\n\n// Note: This package is abandoned and not compatible with modern Node.js versions or ESM.","lang":"javascript","description":"Demonstrates basic installation and how to instantiate a Queue and chain fundamental file operations like reading, inspecting, and writing."},"warnings":[{"fix":"Migrate to a currently maintained build system like Gulp, Webpack, Rollup, or esbuild. Do not use Gear.js for new projects.","message":"The Gear.js project has been abandoned for approximately nine years. It is not compatible with modern Node.js versions (e.g., Node.js 14+) due to outdated dependencies and lack of maintenance. Expect frequent compatibility issues and runtime errors.","severity":"breaking","affected_versions":">=0.9.7"},{"fix":"Always use `const { Symbol } = require('gear');` for importing components.","message":"The package is CommonJS-only and does not support ES Modules (`import`/`export`). Attempting to import Gear.js components using ESM syntax will fail.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Discontinue use immediately and replace with a modern, actively maintained alternative. Perform a security audit if already in use.","message":"Security vulnerability: Being an unmaintained project, Gear.js and its dependencies (including `gear-lib`) are highly likely to contain known security vulnerabilities (CVEs) that will not be patched. Using it in production could pose significant security risks.","severity":"breaking","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-19T00:00:00.000Z","next_check":"2026-07-18T00:00:00.000Z","problems":[{"fix":"Ensure you are using `const { Queue } = require('gear');` and not `import { Queue } from 'gear';`.","cause":"Attempting to instantiate Queue without properly requiring it or using incorrect ESM syntax in a CJS context.","error":"TypeError: Queue is not a constructor"},{"fix":"Run `npm install gear-lib` in your project directory to install the task library.","cause":"Tasks like `jsminify` are provided by the `gear-lib` package, which must be installed separately.","error":"Error: Cannot find module 'gear-lib/tasks/jsminify'"},{"fix":"Ensure you are calling `new Queue().someTask().run();`.","cause":"The `run()` method is called on an instance of `Queue`, not directly on the `Queue` class itself, or the `Queue` object was not correctly instantiated.","error":"TypeError: queue.run is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"gear"}