25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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