rollup.config.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import glob from 'glob'
  2. import babel from 'rollup-plugin-babel'
  3. import resolve from 'rollup-plugin-node-resolve'
  4. import commonjs from 'rollup-plugin-commonjs'
  5. import minify from 'rollup-plugin-babel-minify'
  6. import inject from 'rollup-plugin-inject'
  7. import multiEntry from 'rollup-plugin-multi-entry'
  8. import vue from 'rollup-plugin-vue'
  9. const files = glob.sync('src/**/*.js', {
  10. ignore: [
  11. 'src/constants/**',
  12. 'src/utils/**',
  13. 'src/virtual-scroll/**',
  14. 'src/vue/**'
  15. ]
  16. })
  17. const external = ['jquery']
  18. const globals = {
  19. jquery: 'jQuery'
  20. }
  21. const config = []
  22. const plugins = [
  23. inject({
  24. include: '**/*.js',
  25. exclude: 'node_modules/**',
  26. $: 'jquery'
  27. }),
  28. resolve(),
  29. commonjs(),
  30. babel({
  31. exclude: 'node_modules/**'
  32. })
  33. ]
  34. if (process.env.NODE_ENV === 'production') {
  35. plugins.push(minify({
  36. comments: false
  37. }))
  38. }
  39. for (const file of files) {
  40. let out = `dist/${file.replace('src/', '')}`
  41. if (process.env.NODE_ENV === 'production') {
  42. out = out.replace(/.js$/, '.min.js')
  43. }
  44. config.push({
  45. input: file,
  46. output: {
  47. name: 'BootstrapTable',
  48. file: out,
  49. format: 'umd',
  50. globals
  51. },
  52. external,
  53. plugins
  54. })
  55. }
  56. let out = 'dist/bootstrap-table-locale-all.js'
  57. if (process.env.NODE_ENV === 'production') {
  58. out = out.replace(/.js$/, '.min.js')
  59. }
  60. config.push({
  61. input: 'src/locale/**/*.js',
  62. output: {
  63. name: 'BootstrapTable',
  64. file: out,
  65. format: 'umd',
  66. globals
  67. },
  68. external,
  69. plugins: [
  70. multiEntry(),
  71. ...plugins
  72. ]
  73. })
  74. out = 'dist/bootstrap-table-vue.js'
  75. if (process.env.NODE_ENV === 'production') {
  76. out = out.replace(/.js$/, '.min.js')
  77. }
  78. config.push({
  79. input: 'src/vue/index.js',
  80. output: {
  81. name: 'BootstrapTable',
  82. file: out,
  83. format: 'umd'
  84. },
  85. plugins: [
  86. vue(),
  87. ...plugins
  88. ]
  89. })
  90. out = 'dist/bootstrap-table-vue.esm.js'
  91. if (process.env.NODE_ENV === 'production') {
  92. out = out.replace(/.js$/, '.min.js')
  93. }
  94. config.push({
  95. input: 'src/vue/BootstrapTable.vue',
  96. output: {
  97. name: 'BootstrapTable',
  98. file: out,
  99. format: 'esm'
  100. },
  101. plugins: [
  102. vue(),
  103. ...plugins
  104. ]
  105. })
  106. export default config