code: function buildScripts() {
    return Promise.resolve()
      // Create the dist folder if it doesn't exist
      .then(() => {
        if(!FS.existsSync(Path.join(__dirname, 'dist'))) {
          return FS.mkdirAsync(Path.join(__dirname, 'dist'));
        }
      })
  
      // Generate minified scripts
      .then(() => new Promise((resolve, reject) => {
        let scripts = {
          'dropdowns.js': FS.readFileSync(Path.join(__dirname, 'source/js/dropdowns.js'), 'utf8'),
          'tabs.js': FS.readFileSync(Path.join(__dirname, 'source/js/tabs.js'), 'utf8')
        };
  
        let result = UglifyJS.minify(scripts, {
          output: {
            comments: /^!/
          }
        });
        if(result.error) {
          reject(result.error);
          return;
        }
  
        resolve(result.code);
      }))
  
      // Write minified scripts to dist
      .then((scripts) => {
        let file = Path.join(__dirname, 'dist/shoelace.js');
  
        // Update {{version}} in JS since it's not processed with Handlebars
        scripts = scripts.replace(/\{\{version\}\}/g, __version);
  
        // Output a message
        console.log(Chalk.green('JS processed: %s! 🐭'), Path.relative(__dirname, file));
  
        // Write output file
        return FS.writeFileAsync(file, scripts, 'utf8');
      });
  }
docs: Builds all scripts.  Returns a promise.