The vite-plugin-remove-blocks
removes marked blocks from any type of code.
# NPM
npm install --save-dev vite-plugin-remove-blocks
# Yarn
yarn add --dev vite-plugin-remove-blocks
ignoreNodeModules
is a boolean that defines whether to process the node_modules
folder.
blocks
is an array of blocks' representations. Each element of this array describes a unique pair of tags with name,
prefix, suffix and optional replacement. These values are represented by a string or an object with the following properties:
name: 'devblock' # a string defines a name for start/end tags (unique)
prefix: '/*' # a string defines the beginning of a tag
suffix: '*/' # a string defines the end of a tag
replacement: 'optional' # a string defines a substitution for a removed block
The plugin supports zero config. When no options are provided, it uses default name, prefix and suffix values.
For example, suppose the task is to remove some debug information and non-production code from this code sample.
function makeFoo(bar, baz) {
console.log('creating Foo');
if (bar instanceof Bar !== true) {
throw new Error('makeFoo: bar param must be an instance of Bar');
}
if (baz instanceof Baz !== true) {
throw new Error('makeFoo: baz param must be an instance of Baz');
}
return new Foo(bar, baz);
}
The plugin removes blocks of code marked with two paired tags (a block). A block is represented by a string or an object with the properties described in "Options" above. Let's identify two different blocks and describe them in the configuration:
// vite.config.js
import {defineConfig} from 'vite';
import RemoveBlocks from 'vite-plugin-remove-blocks';
export default defineConfig({
plugins: [
RemoveBlocks({
blocks: [
'debug',
{
name: 'development',
prefix: '//',
suffix: '',
},
],
}),
],
})
Once the blocks are described in the configuration, the unwanted areas of code can be marked in the code:
function makeFoo(bar, baz) {
/* debug:start */ console.log('creating Foo'); /* debug:end */
// development:start
if (bar instanceof Bar !== true) {
throw new Error('makeFoo: bar param must be an instance of Bar');
}
// development:end
// development:start
if (baz instanceof Baz !== true) {
throw new Error('makeFoo: baz param must be an instance of Baz');
}
// development:end
// This code will remain
return new Foo(bar, baz);
}
After the building process, the marked blocks will be completely removed.
function makeFoo(bar, baz) {
// This code will remain
return new Foo(bar, baz);
}
The MIT License (MIT). Please see the License file for more information.