Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

195 rader
4.0 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. import { HEATMAP_LEFT_MARGIN } from './src/js/utils/constants';
  19. fs.readFile('src/css/charts.scss', (err, css) => {
  20. postcss([precss, autoprefixer])
  21. .process(css, { from: 'src/css/charts.scss', to: 'src/css/charts.css' })
  22. .then(result => {
  23. let options = {
  24. level: {
  25. 1: {
  26. removeQuotes: false,
  27. }
  28. }
  29. }
  30. let output = new CleanCSS(options).minify(result.css);
  31. let res = JSON.stringify(output.styles).replace(/"/g, "'");
  32. let js = `export const CSSTEXT = "${res.slice(1, -1)}";`;
  33. fs.writeFile('src/css/chartsCss.js', js);
  34. });
  35. });
  36. export default [
  37. {
  38. input: 'src/js/index.js',
  39. sourcemap: true,
  40. output: [
  41. {
  42. file: 'docs/assets/js/frappe-charts.min.js',
  43. format: 'iife',
  44. },
  45. {
  46. file: pkg.browser,
  47. format: 'iife',
  48. }
  49. ],
  50. name: 'frappe',
  51. plugins: [
  52. postcssPlugin({
  53. preprocessor: (content, id) => new Promise((resolve, reject) => {
  54. const result = sass.renderSync({ file: id })
  55. resolve({ code: result.css.toString() })
  56. }),
  57. extensions: [ '.scss' ],
  58. plugins: [
  59. nested(),
  60. cssnext({ warnForDuplicates: false }),
  61. cssnano()
  62. ]
  63. }),
  64. eslint({
  65. exclude: [
  66. 'src/css/**'
  67. ]
  68. }),
  69. babel({
  70. exclude: 'node_modules/**'
  71. }),
  72. replace({
  73. exclude: 'node_modules/**',
  74. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  75. }),
  76. uglify()
  77. ]
  78. },
  79. {
  80. input: 'docs/assets/js/index.js',
  81. sourcemap: true,
  82. output: [
  83. {
  84. file: 'docs/assets/js/index.min.js',
  85. format: 'iife',
  86. }
  87. ],
  88. name: 'frappe',
  89. plugins: [
  90. postcssPlugin({
  91. preprocessor: (content, id) => new Promise((resolve, reject) => {
  92. const result = sass.renderSync({ file: id })
  93. resolve({ code: result.css.toString() })
  94. }),
  95. extensions: [ '.scss' ],
  96. plugins: [
  97. nested(),
  98. cssnext({ warnForDuplicates: false }),
  99. cssnano()
  100. ]
  101. }),
  102. eslint({
  103. exclude: [
  104. 'src/css/**'
  105. ]
  106. }),
  107. babel({
  108. exclude: 'node_modules/**'
  109. }),
  110. replace({
  111. exclude: 'node_modules/**',
  112. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  113. })
  114. ]
  115. },
  116. {
  117. input: 'src/js/chart.js',
  118. output: [
  119. {
  120. file: pkg.main,
  121. format: 'cjs',
  122. },
  123. {
  124. file: pkg.module,
  125. format: 'es',
  126. }
  127. ],
  128. plugins: [
  129. postcssPlugin({
  130. preprocessor: (content, id) => new Promise((resolve, reject) => {
  131. const result = sass.renderSync({ file: id })
  132. resolve({ code: result.css.toString() })
  133. }),
  134. extensions: [ '.scss' ],
  135. plugins: [
  136. nested(),
  137. cssnext({ warnForDuplicates: false }),
  138. cssnano()
  139. ]
  140. }),
  141. eslint({
  142. exclude: [
  143. 'src/css/**',
  144. ]
  145. }),
  146. babel({
  147. exclude: 'node_modules/**',
  148. }),
  149. replace({
  150. exclude: 'node_modules/**',
  151. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  152. }),
  153. uglify()
  154. ],
  155. },
  156. {
  157. input: 'src/js/chart.js',
  158. output: [
  159. {
  160. file: pkg.src,
  161. format: 'es',
  162. }
  163. ],
  164. plugins: [
  165. postcssPlugin({
  166. preprocessor: (content, id) => new Promise((resolve, reject) => {
  167. const result = sass.renderSync({ file: id })
  168. resolve({ code: result.css.toString() })
  169. }),
  170. extensions: [ '.scss' ],
  171. extract: 'dist/frappe-charts.min.css',
  172. plugins: [
  173. nested(),
  174. cssnext({ warnForDuplicates: false }),
  175. cssnano()
  176. ]
  177. }),
  178. eslint({
  179. exclude: [
  180. 'src/css/**',
  181. ]
  182. }),
  183. replace({
  184. exclude: 'node_modules/**',
  185. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  186. })
  187. ],
  188. }
  189. ];