}
 const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
 
-function build(plugin) {
+const build = async (plugin) => {
   console.log(`Building ${plugin} plugin...`)
 
   const external = ['jquery', 'popper.js']
   }
 
   const pluginFilename = `${plugin.toLowerCase()}.js`
-
-  rollup.rollup({
+  const bundle = await 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}`))
   })
+
+  await bundle.write({
+    banner: banner(pluginFilename),
+    format: 'umd',
+    name: plugin,
+    sourcemap: true,
+    globals,
+    file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
+  })
+
+  console.log(`Building ${plugin} plugin... Done!`)
+}
+
+const main = async () => {
+  try {
+    await Promise.all(Object.keys(bsPlugins).map((plugin) => build(plugin)))
+  } catch (error) {
+    console.error(error)
+
+    process.exit(1)
+  }
 }
 
-Object.keys(bsPlugins).forEach((plugin) => build(plugin))
+main()