Tweak build/build-plugins.js.

This commit is contained in:
XhmikosR 2018-09-26 16:05:27 +03:00
parent 7c7a1706c3
commit 19f70f9d4c
1 changed files with 38 additions and 39 deletions

View File

@ -5,12 +5,12 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
const rollup = require('rollup')
const path = require('path') const path = require('path')
const rollup = require('rollup')
const babel = require('rollup-plugin-babel') const babel = require('rollup-plugin-babel')
const banner = require('./banner.js') const banner = require('./banner.js')
const TEST = process.env.NODE_ENV === 'test'
const TEST = process.env.NODE_ENV === 'test'
const plugins = [ const plugins = [
babel({ babel({
exclude: 'node_modules/**', // Only transpile our source code 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 = { const bsPlugins = {
Alert: path.resolve(__dirname, '../js/src/alert.js'), Alert: path.resolve(__dirname, '../js/src/alert.js'),
Button: path.resolve(__dirname, '../js/src/button.js'), Button: path.resolve(__dirname, '../js/src/button.js'),
@ -39,10 +36,10 @@ const bsPlugins = {
Tooltip: path.resolve(__dirname, '../js/src/tooltip.js'), Tooltip: path.resolve(__dirname, '../js/src/tooltip.js'),
Util: path.resolve(__dirname, '../js/src/util.js') Util: path.resolve(__dirname, '../js/src/util.js')
} }
const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
Object.keys(bsPlugins) function build(plugin) {
.forEach((pluginKey) => { console.log(`Building ${plugin} plugin...`)
console.log(`Building ${pluginKey} plugin...`)
const external = ['jquery', 'popper.js'] const external = ['jquery', 'popper.js']
const globals = { const globals = {
@ -51,33 +48,35 @@ Object.keys(bsPlugins)
} }
// Do not bundle Util in plugins // Do not bundle Util in plugins
if (pluginKey !== 'Util') { if (plugin !== 'Util') {
external.push(bsPlugins.Util) external.push(bsPlugins.Util)
globals[bsPlugins.Util] = 'Util' globals[bsPlugins.Util] = 'Util'
} }
// Do not bundle Tooltip in Popover // Do not bundle Tooltip in Popover
if (pluginKey === 'Popover') { if (plugin === 'Popover') {
external.push(bsPlugins.Tooltip) external.push(bsPlugins.Tooltip)
globals[bsPlugins.Tooltip] = 'Tooltip' globals[bsPlugins.Tooltip] = 'Tooltip'
} }
const pluginFilename = `${pluginKey.toLowerCase()}.js` const pluginFilename = `${plugin.toLowerCase()}.js`
rollup.rollup({ rollup.rollup({
input: bsPlugins[pluginKey], input: bsPlugins[plugin],
plugins, plugins,
external external
}).then((bundle) => { }).then((bundle) => {
bundle.write({ bundle.write({
banner: banner(pluginFilename), banner: banner(pluginFilename),
format, format: 'umd',
name: pluginKey, name: plugin,
sourcemap: true, sourcemap: true,
globals, globals,
file: path.resolve(__dirname, `${rootPath}${pluginFilename}`) file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
}) })
.then(() => console.log(`Building ${pluginKey} plugin... Done!`)) .then(() => console.log(`Building ${plugin} plugin... Done!`))
.catch((err) => console.error(`${pluginKey}: ${err}`)) .catch((err) => console.error(`${plugin}: ${err}`))
})
}) })
}
Object.keys(bsPlugins).forEach((plugin) => build(plugin))