12
const path = require('path')
13
const rollup = require('rollup')
14
const { babel } = require('@rollup/plugin-babel')
15
const banner = require('./banner.js')
17
const TEST = process.env.NODE_ENV === 'test'
21
exclude: 'node_modules/**',
23
babelHelpers: 'bundled'
27
Alert: path.resolve(__dirname, '../js/src/alert.js'),
28
Button: path.resolve(__dirname, '../js/src/button.js'),
29
Carousel: path.resolve(__dirname, '../js/src/carousel.js'),
30
Collapse: path.resolve(__dirname, '../js/src/collapse.js'),
31
Dropdown: path.resolve(__dirname, '../js/src/dropdown.js'),
32
Modal: path.resolve(__dirname, '../js/src/modal.js'),
33
Popover: path.resolve(__dirname, '../js/src/popover.js'),
34
ScrollSpy: path.resolve(__dirname, '../js/src/scrollspy.js'),
35
Tab: path.resolve(__dirname, '../js/src/tab.js'),
36
Toast: path.resolve(__dirname, '../js/src/toast.js'),
37
Tooltip: path.resolve(__dirname, '../js/src/tooltip.js'),
38
Util: path.resolve(__dirname, '../js/src/util.js')
40
const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
42
const build = async plugin => {
43
console.log(`Building ${plugin} plugin...`)
45
const external = ['jquery', 'popper.js']
52
if (plugin !== 'Util') {
53
external.push(bsPlugins.Util)
54
globals[bsPlugins.Util] = 'Util'
58
if (plugin === 'Popover') {
59
external.push(bsPlugins.Tooltip)
60
globals[bsPlugins.Tooltip] = 'Tooltip'
63
const pluginFilename = `${plugin.toLowerCase()}.js`
64
const bundle = await rollup.rollup({
65
input: bsPlugins[plugin],
71
banner: banner(pluginFilename),
76
file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
79
console.log(`Building ${plugin} plugin... Done!`)
82
const main = async () => {
84
await Promise.all(Object.keys(bsPlugins).map(plugin => build(plugin)))