{"library":"replace-in-file","title":"Replace In File","description":"Replace In File is a JavaScript/TypeScript utility for programmatic and CLI-based text replacement within one or more files. Currently at version 8.4.0, it provides both asynchronous (Promise-based) and synchronous APIs, supporting glob patterns for file selection. The library facilitates simple string replacements, complex regular expression substitutions, and handling of multiple replacements with distinct options. Its release cadence includes major version bumps that introduce breaking changes, notably affecting the return value structure. Key differentiators include its flexibility in handling various replacement scenarios, support for custom file system APIs, and a dry-run mode, making it suitable for build scripts, content transformation, and general file manipulation tasks in Node.js environments.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install replace-in-file"],"cli":{"name":"replace-in-file","version":null}},"imports":["import { replaceInFile } from 'replace-in-file'","import { replaceInFileSync } from 'replace-in-file'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { replaceInFile } from 'replace-in-file';\nimport * as path from 'path';\nimport * as fs from 'fs';\n\n// Create a dummy file for the example\nconst dummyFilePath = path.resolve(__dirname, 'temp-example.txt');\nfs.writeFileSync(dummyFilePath, 'Hello foo world! Foo bar. This is foo again.');\n\nasync function runReplacement() {\n  const options = {\n    files: dummyFilePath,\n    from: /foo/g,\n    to: 'bar',\n    countMatches: true // Show matches and replacements info\n  };\n\n  try {\n    console.log(`Initial content of ${path.basename(dummyFilePath)}:`);\n    console.log(fs.readFileSync(dummyFilePath, 'utf8'));\n\n    const results = await replaceInFile(options);\n    console.log('\\nReplacement results:', results);\n    // Expected output similar to:\n    // [\n    //   {\n    //     file: '/path/to/temp-example.txt',\n    //     hasChanged: true,\n    //     numMatches: 3,\n    //     numReplacements: 3\n    //   }\n    // ]\n\n    console.log(`\\nContent after replacement in ${path.basename(dummyFilePath)}:`);\n    console.log(fs.readFileSync(dummyFilePath, 'utf8')); // Should be \"Hello bar world! Bar bar. This is bar again.\"\n\n  } catch (error) {\n    console.error('Error occurred:', error);\n  } finally {\n    // Clean up the dummy file\n    fs.unlinkSync(dummyFilePath);\n    console.log(`\\nCleaned up ${path.basename(dummyFilePath)}`);\n  }\n}\n\nrunReplacement();","lang":"typescript","description":"Demonstrates asynchronous text replacement in a file using a regular expression, including file creation and cleanup.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}