Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

163 linhas
3.1 KiB

  1. import pkg from './package.json';
  2. // Rollup plugins
  3. import babel from 'rollup-plugin-babel';
  4. import eslint from 'rollup-plugin-eslint';
  5. import replace from 'rollup-plugin-replace';
  6. import uglify from 'rollup-plugin-uglify-es';
  7. import sass from 'node-sass';
  8. // PostCSS plugins
  9. import postcssPlugin from 'rollup-plugin-postcss';
  10. import nested from 'postcss-nested';
  11. import cssnext from 'postcss-cssnext';
  12. import cssnano from 'cssnano';
  13. import postcss from 'postcss';
  14. import precss from 'precss';
  15. import CleanCSS from 'clean-css';
  16. import autoprefixer from 'autoprefixer';
  17. import fs from 'fs';
  18. fs.readFile('src/css/charts.scss', (err, css) => {
  19. postcss([precss, autoprefixer])
  20. .process(css, { from: 'src/css/charts.scss', to: 'src/css/charts.css' })
  21. .then(result => {
  22. let options = {
  23. level: {
  24. 1: {
  25. removeQuotes: false,
  26. }
  27. }
  28. }
  29. let output = new CleanCSS(options).minify(result.css);
  30. let res = JSON.stringify(output.styles).replace(/"/g, "'");
  31. let js = `export const CSSTEXT = "${res.slice(1, -1)}";`;
  32. fs.writeFile('src/css/chartsCss.js', js);
  33. });
  34. });
  35. export default [
  36. {
  37. input: 'src/js/index.js',
  38. sourcemap: true,
  39. output: [
  40. {
  41. file: pkg.browser,
  42. format: 'iife',
  43. }
  44. ],
  45. name: 'frappe',
  46. plugins: [
  47. postcssPlugin({
  48. preprocessor: (content, id) => new Promise((resolve, reject) => {
  49. const result = sass.renderSync({ file: id })
  50. resolve({ code: result.css.toString() })
  51. }),
  52. extensions: [ '.scss' ],
  53. plugins: [
  54. nested(),
  55. cssnext({ warnForDuplicates: false }),
  56. cssnano()
  57. ]
  58. }),
  59. eslint({
  60. exclude: [
  61. 'src/css/**'
  62. ]
  63. }),
  64. babel({
  65. exclude: 'node_modules/**',
  66. plugins: ['external-helpers']
  67. }),
  68. replace({
  69. exclude: 'node_modules/**',
  70. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  71. }),
  72. uglify()
  73. ]
  74. },
  75. {
  76. input: 'src/js/chart.js',
  77. sourcemap: true,
  78. output: [
  79. {
  80. file: pkg.main,
  81. format: 'cjs',
  82. },
  83. {
  84. file: pkg.module,
  85. format: 'es',
  86. }
  87. ],
  88. plugins: [
  89. postcssPlugin({
  90. preprocessor: (content, id) => new Promise((resolve, reject) => {
  91. const result = sass.renderSync({ file: id })
  92. resolve({ code: result.css.toString() })
  93. }),
  94. extensions: [ '.scss' ],
  95. plugins: [
  96. nested(),
  97. cssnext({ warnForDuplicates: false }),
  98. cssnano()
  99. ]
  100. }),
  101. eslint({
  102. exclude: [
  103. 'src/css/**',
  104. ]
  105. }),
  106. babel({
  107. exclude: 'node_modules/**',
  108. }),
  109. // TODO:
  110. // uglify()
  111. ],
  112. },
  113. {
  114. input: 'docs/index.js',
  115. output: [
  116. {
  117. file: 'docs/index.min.js',
  118. format: 'iife',
  119. }
  120. ],
  121. plugins: [
  122. babel({
  123. exclude: 'node_modules/**'
  124. })
  125. ]
  126. },
  127. {
  128. input: 'src/js/chart.js',
  129. output: [
  130. {
  131. file: pkg.src,
  132. format: 'es',
  133. }
  134. ],
  135. plugins: [
  136. postcssPlugin({
  137. preprocessor: (content, id) => new Promise((resolve, reject) => {
  138. const result = sass.renderSync({ file: id })
  139. resolve({ code: result.css.toString() })
  140. }),
  141. extensions: [ '.scss' ],
  142. extract: 'dist/frappe-charts.min.css',
  143. plugins: [
  144. nested(),
  145. cssnext({ warnForDuplicates: false }),
  146. cssnano()
  147. ]
  148. }),
  149. ],
  150. }
  151. ];