* 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
]
})
]
-
-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'),
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))