Skip to content

Rabbitzzc/tiny-replace-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

tiny-replace-files


Like vscode, simple utility to quickly replace text in one or more files.

Travis (.org) npm bundle size npm GitHub issues GitHub stars GitHub license

πŸ“¦ Getting Started

install

# npm  npm install --save tiny-replace-files fast-glob # yarn yarn add tiny-replace-files fast-glob # pnpm pnpm install --save tiny-replace-files fast-glob

usage

Sync

import { replaceStringInFilesSync } from 'tiny-replace-files' const options = { files: 'src/targets/index.js', from: 'test-plugin', to: 'self-name', } # await const result = replaceStringInFilesSync(options) console.info(result) /** [  {  file: './ques2.md',  changed: true,  matchCounts: 1,  replaceCounts: 1  } ] */

Async

import replaceStringInFiles from 'tiny-replace-files' const options = { files: 'src/targets/index.js', from: 'test-plugin', to: 'self-name', } # await const result = await replaceStringInFiles(options) console.info(result) # promise replaceStringInFiles(options).then((res)=>{ console.info(res) }).catch(err=>{ console.info(err) })

Advanced usage

Replace a single file or glob

const options = { files: 'file', };

Replace multiple files or globs

const options = { files: [ 'file1', 'file2', 'file3', ], }; const options = { files: [ 'file1', 'file2/**', ] };

Replace by regex

const options = { from: /foo/g, to: 'bar', };

from callback

const options = { files: 'file', from: (file) => new RegExp(file, 'g'), to: 'bar', };

to callback

const options = { files: './ques2.md', from: 'quest 2', to: (match: string) => match.toUpperCase(), countMatches: true }

Ignore file(s) or glob

const options = { ignore: './ignored/file', }; const options = { ignore: [ 'path/**', 'path2/index.html', ], };

Disable globs

do not use fast-glob to get path. if you config this, you can uninstall fast-glob for reduce pkg size.

const options = { disableGlobs: true, };

glob configuration

API passed to the fast-glob:

const options = { glob: { //Glob settings here dot: true, //E.g. to include file names starting with a dot }, };

Character encoding

Use a different character encoding for reading/writing files. Defaults to utf-8.

const options = { encoding: 'utf8', };

freeze Run

freeze mode will do not replace & change, just run the process.

const options = { freeze: true, };

βš™οΈ Changelog

See CHANGELOG.

LICENSE

MIT

✈️ TODO

  • init lib
  • support replaceStringInFiles
  • support replaceStringInFilesSync
  • support test

About

πŸŽ‰πŸŽ‰πŸŽ‰like vcsode, string/texts can be replaced in file(s).

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •