async minify(globs, options) {
        debug('Begin', globs);
        const destinations = Object.keys(globs);
        const minifiedFiles = [];

        for (const dest of destinations) {
            const src = globs[dest];
            let contents = await this.getSrcFileContents(src);

            if (options?.replacements) {
                for (const key of Object.keys(options.replacements)) {
                    contents = contents.replace(key, options.replacements[key]);
                }
            }
            let minifiedContents;

            if (dest.endsWith('.css')) {
                minifiedContents = await this.minifyCSS(contents);
            } else if (dest.endsWith('.js')) {
                minifiedContents = await this.minifyJS(contents);
            } else {
                throw new errors.IncorrectUsageError({
                    message: tpl(messages.badDestination.message, {dest}),
                    context: tpl(messages.badDestination.context),
                    help: tpl(messages.globalHelp)
                });
            }

            const result = await this.writeFile(minifiedContents, dest);
            if (result) {
                minifiedFiles.push(dest);
            }
        }

        debug('End');
        return minifiedFiles;
    }
Minify files

@param {Object} globs An object in the form of
```js
{
    'destination1.js': 'glob/*.js',
    'destination2.js': 'glob2/*.js'
}
```
@param {Object} [options]
@param {Object} [options.replacements] Key value pairs that should get replaced in the content before minifying
@returns {Promise<string[]>} List of minified files (keys of globs)