Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorJohann-S <johann.servoire@gmail.com>2018-07-25 12:29:16 +0300
committerXhmikosR <xhmikosr@gmail.com>2019-02-20 23:05:45 +0300
commitc44db783bf17c907dd46f53fdaa917ec74ffbded (patch)
tree69a380068b58961b01e5cd465e118dbda4d376dd /build
parentcf821e1d4d1d67f6b4ce9651ae64c72a502c40ba (diff)
chore(update): bump to 4.1.3
Diffstat (limited to 'build')
-rw-r--r--build/build-plugins.js121
1 files changed, 106 insertions, 15 deletions
diff --git a/build/build-plugins.js b/build/build-plugins.js
index abcbc5e2f5..a5f95a9d15 100644
--- a/build/build-plugins.js
+++ b/build/build-plugins.js
@@ -26,6 +26,11 @@ const plugins = [
})
]
const bsPlugins = {
+ Data: path.resolve(__dirname, '../js/src/dom/data.js'),
+ EventHandler: path.resolve(__dirname, '../js/src/dom/eventHandler.js'),
+ Manipulator: path.resolve(__dirname, '../js/src/dom/manipulator.js'),
+ Polyfill: path.resolve(__dirname, '../js/src/dom/polyfill.js'),
+ SelectorEngine: path.resolve(__dirname, '../js/src/dom/selectorEngine.js'),
Alert: path.resolve(__dirname, '../js/src/alert.js'),
Button: path.resolve(__dirname, '../js/src/button.js'),
Carousel: path.resolve(__dirname, '../js/src/carousel.js'),
@@ -41,26 +46,112 @@ const bsPlugins = {
}
const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/'
-function build(plugin) {
- console.log(`Building ${plugin} plugin...`)
+const defaultPluginConfig = {
+ external: [
+ bsPlugins.Data,
+ bsPlugins.EventHandler,
+ bsPlugins.SelectorEngine,
+ bsPlugins.Util
+ ],
+ globals: {
+ [bsPlugins.Data]: 'Data',
+ [bsPlugins.EventHandler]: 'EventHandler',
+ [bsPlugins.SelectorEngine]: 'SelectorEngine',
+ [bsPlugins.Util]: 'Util'
+ }
+}
+
+function getConfigByPluginKey(pluginKey) {
+ if (
+ pluginKey === 'Data' ||
+ pluginKey === 'Manipulator' ||
+ pluginKey === 'Util'
+ ) {
+ return {
+ external: [],
+ globals: {}
+ }
+ }
+
+ if (pluginKey === 'EventHandler' || pluginKey === 'SelectorEngine') {
+ return {
+ external: [
+ bsPlugins.Polyfill,
+ bsPlugins.Util
+ ],
+ globals: {
+ [bsPlugins.Polyfill]: 'Polyfill',
+ [bsPlugins.Util]: 'Util'
+ }
+ }
+ }
+
+ if (pluginKey === 'Polyfill') {
+ return {
+ external: [bsPlugins.Util],
+ globals: {
+ [bsPlugins.Util]: 'Util'
+ }
+ }
+ }
+
+ if (pluginKey === 'Alert' || pluginKey === 'Tab') {
+ return defaultPluginConfig
+ }
- const external = ['jquery', 'popper.js']
- const globals = {
- jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
- 'popper.js': 'Popper'
+ if (
+ pluginKey === 'Button' ||
+ pluginKey === 'Carousel' ||
+ pluginKey === 'Collapse' ||
+ pluginKey === 'Modal' ||
+ pluginKey === 'ScrollSpy'
+ ) {
+ const config = Object.assign(defaultPluginConfig)
+ config.external.push(bsPlugins.Manipulator)
+ config.globals[bsPlugins.Manipulator] = 'Manipulator'
+ return config
}
- // Do not bundle Util in plugins
- if (plugin !== 'Util') {
- external.push(bsPlugins.Util)
- globals[bsPlugins.Util] = 'Util'
+ if (pluginKey === 'Dropdown' || pluginKey === 'Tooltip') {
+ const config = Object.assign(defaultPluginConfig)
+ config.external.push(bsPlugins.Manipulator, 'popper.js')
+ config.globals[bsPlugins.Manipulator] = 'Manipulator'
+ config.globals['popper.js'] = 'Popper'
+ return config
}
- // Do not bundle Tooltip in Popover
- if (plugin === 'Popover') {
- external.push(bsPlugins.Tooltip)
- globals[bsPlugins.Tooltip] = 'Tooltip'
+ if (pluginKey === 'Popover') {
+ return {
+ external: [
+ bsPlugins.Data,
+ bsPlugins.SelectorEngine,
+ bsPlugins.Tooltip,
+ bsPlugins.Util
+ ],
+ globals: {
+ [bsPlugins.Data]: 'Data',
+ [bsPlugins.SelectorEngine]: 'SelectorEngine',
+ [bsPlugins.Tooltip]: 'Tooltip',
+ [bsPlugins.Util]: 'Util'
+ }
+ }
}
+}
+
+function build(plugin) {
+ console.log(`Building ${plugin} plugin...`)
+
+ const config = getConfigByPluginKey(plugin)
+ const external = config.external
+ const globals = config.globals
+
+ const pluginPath = [
+ 'Data',
+ 'EventHandler',
+ 'Manipulator',
+ 'Polyfill',
+ 'SelectorEngine'
+ ].includes(plugin) ? `${rootPath}/dom/` : rootPath
const pluginFilename = `${plugin.toLowerCase()}.js`
@@ -75,7 +166,7 @@ function build(plugin) {
name: plugin,
sourcemap: true,
globals,
- file: path.resolve(__dirname, `${rootPath}${pluginFilename}`)
+ file: path.resolve(__dirname, `${pluginPath}${pluginFilename}`)
})
.then(() => console.log(`Building ${plugin} plugin... Done!`))
.catch((err) => console.error(`${plugin}: ${err}`))