You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.1 KiB
117 lines
2.1 KiB
import glob from 'glob'
|
|
import babel from 'rollup-plugin-babel'
|
|
import resolve from 'rollup-plugin-node-resolve'
|
|
import commonjs from 'rollup-plugin-commonjs'
|
|
import { terser } from 'rollup-plugin-terser'
|
|
import inject from 'rollup-plugin-inject'
|
|
import multiEntry from 'rollup-plugin-multi-entry'
|
|
import vue from 'rollup-plugin-vue'
|
|
|
|
const files = glob.sync('src/**/*.js', {
|
|
ignore: [
|
|
'src/constants/**',
|
|
'src/utils/**',
|
|
'src/virtual-scroll/**',
|
|
'src/vue/**'
|
|
]
|
|
})
|
|
const external = ['jquery']
|
|
const globals = {
|
|
jquery: 'jQuery'
|
|
}
|
|
const config = []
|
|
const plugins = [
|
|
inject({
|
|
include: '**/*.js',
|
|
exclude: 'node_modules/**',
|
|
$: 'jquery'
|
|
}),
|
|
resolve(),
|
|
commonjs(),
|
|
babel({
|
|
exclude: 'node_modules/**'
|
|
})
|
|
]
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
plugins.push(terser({
|
|
output: {
|
|
comments () {
|
|
return false
|
|
}
|
|
}
|
|
}))
|
|
}
|
|
|
|
for (const file of files) {
|
|
let out = `dist/${file.replace('src/', '')}`
|
|
if (process.env.NODE_ENV === 'production') {
|
|
out = out.replace(/.js$/, '.min.js')
|
|
}
|
|
config.push({
|
|
input: file,
|
|
output: {
|
|
name: 'BootstrapTable',
|
|
file: out,
|
|
format: 'umd',
|
|
globals
|
|
},
|
|
external,
|
|
plugins
|
|
})
|
|
}
|
|
|
|
let out = 'dist/bootstrap-table-locale-all.js'
|
|
if (process.env.NODE_ENV === 'production') {
|
|
out = out.replace(/.js$/, '.min.js')
|
|
}
|
|
config.push({
|
|
input: 'src/locale/**/*.js',
|
|
output: {
|
|
name: 'BootstrapTable',
|
|
file: out,
|
|
format: 'umd',
|
|
globals
|
|
},
|
|
external,
|
|
plugins: [
|
|
multiEntry(),
|
|
...plugins
|
|
]
|
|
})
|
|
|
|
out = 'dist/bootstrap-table-vue.js'
|
|
if (process.env.NODE_ENV === 'production') {
|
|
out = out.replace(/.js$/, '.min.js')
|
|
}
|
|
config.push({
|
|
input: 'src/vue/index.js',
|
|
output: {
|
|
name: 'BootstrapTable',
|
|
file: out,
|
|
format: 'umd'
|
|
},
|
|
plugins: [
|
|
vue(),
|
|
...plugins
|
|
]
|
|
})
|
|
|
|
out = 'dist/bootstrap-table-vue.esm.js'
|
|
if (process.env.NODE_ENV === 'production') {
|
|
out = out.replace(/.js$/, '.min.js')
|
|
}
|
|
config.push({
|
|
input: 'src/vue/BootstrapTable.vue',
|
|
output: {
|
|
name: 'BootstrapTable',
|
|
file: out,
|
|
format: 'esm'
|
|
},
|
|
plugins: [
|
|
vue(),
|
|
...plugins
|
|
]
|
|
})
|
|
|
|
export default config
|
|
|