Skip to content

This module allows you to replace many terms using regular expressions in all the files in a glob or list of files, asynchronously.

License

Notifications You must be signed in to change notification settings

NascHQ/replace-terms-in-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Replace multiple terms in multiple files

Yes, it's pretty straight forward...you can replace multiple terms within files matching a glob.

It returns a promise you can await for, if you want to.

Very usefull when automating the creation or use of templates, or when you need to change some specific strings in many files and directories recursivelly.

How to install

npm install replace-terms-in-files

How to use it

const replaceTermsInFiles = require('replace-terms-in-files');

const status = await replaceTermsInFiles({
    targets: [
        './a-deep-directory/**/*',
        './some-shallow-directory/*'
    ],
    // extensions are optional
    extensions: ['.js', '.txt'],
    // optionally, you can ignore matching files
    ignore: ['static', /\.old\.js$/],
    // these are optional too
    termOpen: '%__',
    termClose: '__%',
    // all the terms that will be replaced in any file
    // found in those directories matching those globs patterns
    terms: {
        // will replace %__PROJECT_NAME__% by Project\'s awesome name
        'PROJECT_NAME': 'Project\'s awesome name',
        // will replace %__DATE__% by (new Date()).toString()
        'DATE': new Date(),
        // will replace %__BUILD_VERSION__% by the number 123
        'BUILD_VERSION': 123
    }
});

console.log(status.toString());
// outputs something like:
// X files changed, in a total of Y replacements

Note that we use Regular Expressions for the replacements, therfore, %\__DATE__% from the sample above, actually becomes /%\__DATE__%/g. If you have special characters in your key for replacement, you might have to scape it using a backslash \.

This module resolves to an status object containing all the files which suffered any change, and also a total number of changes applied to all of them.

This is open source

Yes, please, feel free to help us out :)

This module is MIT licensed.

About

This module allows you to replace many terms using regular expressions in all the files in a glob or list of files, asynchronously.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published