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.
 
 
 

170 line
3.3 KiB

  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: 'frappe',
  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: 'docs/assets/js/index.js',
  58. sourcemap: true,
  59. output: [
  60. {
  61. file: 'docs/assets/js/index.min.js',
  62. format: 'iife',
  63. }
  64. ],
  65. name: 'frappe',
  66. plugins: [
  67. postcss({
  68. preprocessor: (content, id) => new Promise((resolve, reject) => {
  69. const result = sass.renderSync({ file: id })
  70. resolve({ code: result.css.toString() })
  71. }),
  72. extensions: [ '.scss' ],
  73. plugins: [
  74. nested(),
  75. cssnext({ warnForDuplicates: false }),
  76. cssnano()
  77. ]
  78. }),
  79. eslint({
  80. exclude: [
  81. 'src/scss/**'
  82. ]
  83. }),
  84. babel({
  85. exclude: 'node_modules/**'
  86. }),
  87. replace({
  88. exclude: 'node_modules/**',
  89. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  90. })
  91. ]
  92. },
  93. {
  94. input: 'src/js/chart.js',
  95. output: [
  96. {
  97. file: pkg.main,
  98. format: 'cjs',
  99. },
  100. {
  101. file: pkg.module,
  102. format: 'es',
  103. }
  104. ],
  105. plugins: [
  106. postcss({
  107. preprocessor: (content, id) => new Promise((resolve, reject) => {
  108. const result = sass.renderSync({ file: id })
  109. resolve({ code: result.css.toString() })
  110. }),
  111. extensions: [ '.scss' ],
  112. plugins: [
  113. nested(),
  114. cssnext({ warnForDuplicates: false }),
  115. cssnano()
  116. ]
  117. }),
  118. eslint({
  119. exclude: [
  120. 'src/scss/**',
  121. ]
  122. }),
  123. babel({
  124. exclude: 'node_modules/**',
  125. }),
  126. replace({
  127. exclude: 'node_modules/**',
  128. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  129. }),
  130. uglify()
  131. ],
  132. },
  133. {
  134. input: 'src/js/chart.js',
  135. output: [
  136. {
  137. file: pkg.src,
  138. format: 'es',
  139. }
  140. ],
  141. plugins: [
  142. postcss({
  143. preprocessor: (content, id) => new Promise((resolve, reject) => {
  144. const result = sass.renderSync({ file: id })
  145. resolve({ code: result.css.toString() })
  146. }),
  147. extensions: [ '.scss' ],
  148. extract: 'dist/frappe-charts.min.css',
  149. plugins: [
  150. nested(),
  151. cssnext({ warnForDuplicates: false }),
  152. cssnano()
  153. ]
  154. }),
  155. eslint({
  156. exclude: [
  157. 'src/scss/**',
  158. ]
  159. }),
  160. replace({
  161. exclude: 'node_modules/**',
  162. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  163. })
  164. ],
  165. }
  166. ];