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.

rollup.config.js 2.6 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // Rollup plugins
  2. import babel from 'rollup-plugin-babel';
  3. import eslint from 'rollup-plugin-eslint';
  4. import replace from 'rollup-plugin-replace';
  5. import uglify from 'rollup-plugin-uglify-es';
  6. import sass from 'node-sass';
  7. import postcss from 'rollup-plugin-postcss';
  8. // PostCSS plugins
  9. import nested from 'postcss-nested';
  10. import cssnext from 'postcss-cssnext';
  11. import cssnano from 'cssnano';
  12. import pkg from './package.json';
  13. export default [
  14. {
  15. input: 'src/js/chart.js',
  16. sourcemap: true,
  17. output: [
  18. {
  19. file: 'docs/assets/js/frappe-charts.min.js',
  20. format: 'iife',
  21. },
  22. {
  23. file: pkg.browser,
  24. format: 'iife',
  25. }
  26. ],
  27. name: 'Chart',
  28. plugins: [
  29. postcss({
  30. preprocessor: (content, id) => new Promise((resolve, reject) => {
  31. const result = sass.renderSync({ file: id })
  32. resolve({ code: result.css.toString() })
  33. }),
  34. extensions: [ '.scss' ],
  35. plugins: [
  36. nested(),
  37. cssnext({ warnForDuplicates: false }),
  38. cssnano()
  39. ]
  40. }),
  41. eslint({
  42. exclude: [
  43. 'src/scss/**'
  44. ]
  45. }),
  46. babel({
  47. exclude: 'node_modules/**'
  48. }),
  49. replace({
  50. exclude: 'node_modules/**',
  51. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  52. }),
  53. uglify()
  54. ]
  55. },
  56. {
  57. input: 'src/js/chart.js',
  58. output: [
  59. {
  60. file: pkg.main,
  61. format: 'cjs',
  62. },
  63. {
  64. file: pkg.module,
  65. format: 'es',
  66. }
  67. ],
  68. plugins: [
  69. postcss({
  70. preprocessor: (content, id) => new Promise((resolve, reject) => {
  71. const result = sass.renderSync({ file: id })
  72. resolve({ code: result.css.toString() })
  73. }),
  74. extensions: [ '.scss' ],
  75. plugins: [
  76. nested(),
  77. cssnext({ warnForDuplicates: false }),
  78. cssnano()
  79. ]
  80. }),
  81. eslint({
  82. exclude: [
  83. 'src/scss/**',
  84. ]
  85. }),
  86. babel({
  87. exclude: 'node_modules/**',
  88. }),
  89. replace({
  90. exclude: 'node_modules/**',
  91. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  92. }),
  93. uglify()
  94. ],
  95. },
  96. {
  97. input: 'src/js/chart.js',
  98. output: [
  99. {
  100. file: pkg.src,
  101. format: 'es',
  102. }
  103. ],
  104. plugins: [
  105. postcss({
  106. preprocessor: (content, id) => new Promise((resolve, reject) => {
  107. const result = sass.renderSync({ file: id })
  108. resolve({ code: result.css.toString() })
  109. }),
  110. extensions: [ '.scss' ],
  111. extract: 'dist/frappe-charts.min.css',
  112. plugins: [
  113. nested(),
  114. cssnext({ warnForDuplicates: false }),
  115. cssnano()
  116. ]
  117. }),
  118. eslint({
  119. exclude: [
  120. 'src/scss/**',
  121. ]
  122. }),
  123. replace({
  124. exclude: 'node_modules/**',
  125. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  126. })
  127. ],
  128. }
  129. ];