Replace Text with Regex in files before bundling.
npm install esbuild-plugin-text-replaceReplace content before bundling with support for Filefilter, Namespace and Regex.
$ npm install --save-dev esbuild-plugin-text-replace
Hint: Node >=10.1.0 for fs.promise
as a plugin
``js
import esbuild from 'esbuild'
import textReplace from 'esbuild-plugin-text-replace'
await esbuild.build(
{
entryPoints: ['./test-build-input'],
outfile: 'test-build-out.js',
plugins: [
textReplace(
{
include: /mypackage\/dist\/loader\.js$/,
pattern:[
['const installRetry','let installRetry'],
[/const\s+{\stextReplace\s}\s=\srequire\s\(\s'esbuild-plugin-text-replace'\s\)\s;/g , "'import textReplace from 'esbuild-plugin-text-replace'"]
]
}
)
],
}
)
`
as part of a pipe
`js
import esbuild from 'esbuild';
import pipe from 'esbuild-plugin-pipe';
import textReplace from 'esbuild-plugin-text-replace';
await esbuild.build(
{
entryPoints: ['./test-build-input'],
outfile: 'test-build-out.js',
bundle: true,
plugins: [
pipe({
filter: /.*/,
namespace: '',
plugins: [
textReplace(
{
include: /mypackage\/dist\/loader\.js$/,
pattern:[
['const installRetry','let installRetry'],
[/const\s+{\stextReplace\s}\s=\srequire\s\(\s'esbuild-plugin-text-replace'\s\)\s;/g , "'import textReplace from 'esbuild-plugin-text-replace'"]
]
}
)
]
})
]
}
)
`
Filter filepath by regex.
Type: RegExp/.*/
Default:
> Note: Try to never use the default value as this is has a huge impact on speed if all files are matched!
Type: String
Default: all
More info about esbuild namespaces
Search with Text or Regex and replace the found content with a string.
Type: Array[]
Default:
All information about the replaceAll regex Options and replacer functions.
Examples:
`js${p3}.${p2}.${p1}
[
// transform 2020-10-02 to 02.10.2020
[/(\d{4})-(\d{2})-(\d{2})/g , (match,p1,p2,p3,offset,wholeString)=>], `
['__buildVersion' , '"1.1.1"'],
[/(\s)const(\s+a\s=\s*1[\s;\n])/g, '$1let$2']
]/g` for globale replacement is a must requirement
> Note:
* 1.3.0 pipe mode only: Use the regex from parameter include to transform only files which match
* 1.2.0 Add esbuild pipe support
* 1.1.3 Initial relase
- [X] tests
- [ ] speed tests
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
1. Fork the Project
1. Create your Feature Branch (git checkout -b feature/AmazingFeature)
1. Commit your Changes (git commit -m 'Add some AmazingFeature')
1. Push to the Branch (git push origin feature/AmazingFeature)
1. Open a Pull Request
Distributed under the "bsd-2-clause" License. See LICENSE.txt for more information.