diff --git a/build/build-plugins.js b/build/build-plugins.js
index ab56e1426c68a40ff64870655ae090010d30c076..1de65b426dc00a3ae56fd23d86cad56a08699dbe 100644
--- a/build/build-plugins.js
+++ b/build/build-plugins.js
@@ -5,12 +5,12 @@
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
 
-const rollup  = require('rollup')
 const path    = require('path')
+const rollup  = require('rollup')
 const babel   = require('rollup-plugin-babel')
 const banner  = require('./banner.js')
-const TEST    = process.env.NODE_ENV === 'test'
 
+const TEST    = process.env.NODE_ENV === 'test'
 const plugins = [
   babel({
     exclude: 'node_modules/**', // Only transpile our source code
@@ -23,9 +23,6 @@ const plugins = [
     ]
   })
 ]
-
-const format = 'umd'
-const rootPath = !TEST ? '../js/dist/' : '../js/coverage/dist/'
 const bsPlugins = {
   Alert: path.resolve(__dirname, '../js/src/alert.js'),
   Button: path.resolve(__dirname, '../js/src/button.js'),
@@ -39,45 +36,47 @@ const bsPlugins = {
   Tooltip: path.resolve(__dirname, '../js/src/tooltip.js'),
   Util: path.resolve(__dirname, '../js/src/util.js')
 }
+const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
 
-Object.keys(bsPlugins)
-  .forEach((pluginKey) => {
-    console.log(`Building ${pluginKey} plugin...`)
+function build(plugin) {
+  console.log(`Building ${plugin} plugin...`)
 
-    const external = ['jquery', 'popper.js']
-    const globals = {
-      jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
-      'popper.js': 'Popper'
-    }
+  const external = ['jquery', 'popper.js']
+  const globals = {
+    jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
+    'popper.js': 'Popper'
+  }
 
-    // Do not bundle Util in plugins
-    if (pluginKey !== 'Util') {
-      external.push(bsPlugins.Util)
-      globals[bsPlugins.Util] = 'Util'
-    }
+  // Do not bundle Util in plugins
+  if (plugin !== 'Util') {
+    external.push(bsPlugins.Util)
+    globals[bsPlugins.Util] = 'Util'
+  }
 
-    // Do not bundle Tooltip in Popover
-    if (pluginKey === 'Popover') {
-      external.push(bsPlugins.Tooltip)
-      globals[bsPlugins.Tooltip] = 'Tooltip'
-    }
+  // Do not bundle Tooltip in Popover
+  if (plugin === 'Popover') {
+    external.push(bsPlugins.Tooltip)
+    globals[bsPlugins.Tooltip] = 'Tooltip'
+  }
 
-    const pluginFilename = `${pluginKey.toLowerCase()}.js`
+  const pluginFilename = `${plugin.toLowerCase()}.js`
 
-    rollup.rollup({
-      input: bsPlugins[pluginKey],
-      plugins,
-      external
-    }).then((bundle) => {
-      bundle.write({
-        banner: banner(pluginFilename),
-        format,
-        name: pluginKey,
-        sourcemap: true,
-        globals,
-        file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
-      })
-        .then(() => console.log(`Building ${pluginKey} plugin... Done!`))
-        .catch((err) => console.error(`${pluginKey}: ${err}`))
+  rollup.rollup({
+    input: bsPlugins[plugin],
+    plugins,
+    external
+  }).then((bundle) => {
+    bundle.write({
+      banner: banner(pluginFilename),
+      format: 'umd',
+      name: plugin,
+      sourcemap: true,
+      globals,
+      file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
     })
+      .then(() => console.log(`Building ${plugin} plugin... Done!`))
+      .catch((err) => console.error(`${plugin}: ${err}`))
   })
+}
+
+Object.keys(bsPlugins).forEach((plugin) => build(plugin))