snowpack-plugin-closure-compiler
Version:
compress your static data in snowpack with the Closure Compiler
27 lines (23 loc) • 965 B
JavaScript
const fs = require('fs');
const { generateBundle, generateSeparate } = require('./util/generators.js');
module.exports = function plugin(config, snowpackOptions) {
return {
name: 'snowpack-plugin-closure-compiler',
async optimize({ log }) {
const bundle = snowpackOptions.bundle == null || snowpackOptions.bundle;
// retrieve all javascript files in build directory
// form build directory absolute path
const bundleDir = config.mount[config.root + '/src'].url;
const jsBuildDir = config.root + '/build' + bundleDir;
// create array of absolute paths to js files
const files = fs
.readdirSync(jsBuildDir)
.filter((file) => file.endsWith('.js'))
.map((file) => jsBuildDir + '/' + file);
const generatorOptions = [files, config, snowpackOptions, log];
return bundle
? generateBundle(...generatorOptions)
: generateSeparate(...generatorOptions);
},
};
};