Skip to content

aganglada/pattern-replace-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔬 pattern-replace-loader

All Contributors

Pattern replace loader for webpack

Perform plain string and regular expressions.

Install:

$ npm install --save-dev pattern-replace-loader

or using yarn

$ yarn add pattern-replace-loader --dev

Usage:

Plain: It uses String.prototype.replace() to perform replaces in file contents.

Regex: It will go and look for all the occurrences of what you've specified in options.search with g flag in options.flags, etc.

Plain replacement:

In your webpack.config.js:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /filename\.js$/,
        loader: 'pattern-replace-loader',
        options: {
          search: '[variable]',
          replace: 'Hello'
        }
      }
    ]
  }
}

RegExp replacement:

To be able to use RegExp in yuor replacement you should specify flags in the options param. In this case, search and flags are being passed to the RegExp constructor.

In your webpack.config.js:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /filename\.js$/,
        loader: 'pattern-replace-loader',
        options: {
          search: '[variable]',
          replace: 'Hello',
          flags: 'gi'
        }
      }
    ]
  }
}

Multiple replacement:

Also, you can pass an array of objects of search/replace pairs this way:

In your webpack.config.js:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'pattern-replace-loader',
        options: {
          multiple: [
             { search: '[variable1]', replace: 'Hello' },
             { search: '[variable2]', replace: 'Bye!' }
          ]
        }
      }
    ]
  }
}

Verbose output:

You can enable verbose output to check which files have been processed by the replace loader. In your webpack.config.js:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /filename\.js$/,
        loader: 'pattern-replace-loader',
        options: {
          verbose: true,
          search: '[variable]',
          replace: 'Hello'
        }
      }
    ]
  }
}

Contributing:

Feel free to open issues to propose stuff and participate.

Pull requests are also welcome.

Licence:

MIT

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Alejandro Garcia Anglada

💻 🤔

mathiasscheffe

💻

This project follows the all-contributors specification. Contributions of any kind welcome!