您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

192 行
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. 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: 'docs/assets/js/frappe-charts.min.js',
  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: 'docs/assets/js/index.js',
  77. sourcemap: true,
  78. output: [
  79. {
  80. file: 'docs/assets/js/index.min.js',
  81. format: 'iife',
  82. }
  83. ],
  84. name: 'frappe',
  85. plugins: [
  86. postcssPlugin({
  87. preprocessor: (content, id) => new Promise((resolve, reject) => {
  88. const result = sass.renderSync({ file: id })
  89. resolve({ code: result.css.toString() })
  90. }),
  91. extensions: [ '.scss' ],
  92. plugins: [
  93. nested(),
  94. cssnext({ warnForDuplicates: false }),
  95. cssnano()
  96. ]
  97. }),
  98. eslint({
  99. exclude: [
  100. 'src/css/**'
  101. ]
  102. }),
  103. babel({
  104. exclude: 'node_modules/**'
  105. }),
  106. replace({
  107. exclude: 'node_modules/**',
  108. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  109. })
  110. ]
  111. },
  112. {
  113. input: 'src/js/chart.js',
  114. sourcemap: true,
  115. output: [
  116. {
  117. file: pkg.main,
  118. format: 'cjs',
  119. },
  120. {
  121. file: pkg.module,
  122. format: 'es',
  123. }
  124. ],
  125. plugins: [
  126. postcssPlugin({
  127. preprocessor: (content, id) => new Promise((resolve, reject) => {
  128. const result = sass.renderSync({ file: id })
  129. resolve({ code: result.css.toString() })
  130. }),
  131. extensions: [ '.scss' ],
  132. plugins: [
  133. nested(),
  134. cssnext({ warnForDuplicates: false }),
  135. cssnano()
  136. ]
  137. }),
  138. eslint({
  139. exclude: [
  140. 'src/css/**',
  141. ]
  142. }),
  143. babel({
  144. exclude: 'node_modules/**',
  145. }),
  146. replace({
  147. exclude: 'node_modules/**',
  148. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  149. }),
  150. uglify()
  151. ],
  152. },
  153. {
  154. input: 'src/js/chart.js',
  155. output: [
  156. {
  157. file: pkg.src,
  158. format: 'es',
  159. }
  160. ],
  161. plugins: [
  162. postcssPlugin({
  163. preprocessor: (content, id) => new Promise((resolve, reject) => {
  164. const result = sass.renderSync({ file: id })
  165. resolve({ code: result.css.toString() })
  166. }),
  167. extensions: [ '.scss' ],
  168. extract: 'dist/frappe-charts.min.css',
  169. plugins: [
  170. nested(),
  171. cssnext({ warnForDuplicates: false }),
  172. cssnano()
  173. ]
  174. }),
  175. eslint({
  176. exclude: [
  177. 'src/css/**',
  178. ]
  179. }),
  180. replace({
  181. exclude: 'node_modules/**',
  182. ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
  183. })
  184. ],
  185. }
  186. ];