252aab161cc9ec8afa73072928f70d880fb242d7798bb0efac2d2545853c3421df80f6d985e9be7a574101a69da47c1f8d595a4fc43b022a6839f84c973a6a 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import resolve from '@rollup/plugin-node-resolve';
  2. import commonjs from '@rollup/plugin-commonjs';
  3. import {terser} from "rollup-plugin-terser";
  4. import json from '@rollup/plugin-json';
  5. const lib = require("./package.json");
  6. const outputFileName = 'axios';
  7. const name = "axios";
  8. const input = './lib/axios.js';
  9. const buildConfig = (config) => {
  10. const build = ({minified}) => ({
  11. input,
  12. ...config,
  13. output: {
  14. ...config.output,
  15. file: `${config.output.file}.${minified ? "min.js" : "js"}`
  16. },
  17. plugins: [
  18. json(),
  19. resolve({browser: true}),
  20. commonjs(),
  21. minified && terser(),
  22. ...(config.plugins || []),
  23. ]
  24. });
  25. return [
  26. build({minified: false}),
  27. build({minified: true}),
  28. ];
  29. };
  30. export default async () => {
  31. const year = new Date().getFullYear();
  32. const banner = `// ${lib.name} v${lib.version} Copyright (c) ${year} ${lib.author}`;
  33. return [
  34. ...buildConfig({
  35. output: {
  36. file: `dist/${outputFileName}`,
  37. name,
  38. format: "umd",
  39. exports: "default",
  40. banner
  41. }
  42. }),
  43. ...buildConfig({
  44. output: {
  45. file: `dist/esm/${outputFileName}`,
  46. format: "esm",
  47. preferConst: true,
  48. exports: "named",
  49. banner
  50. }
  51. })
  52. ]
  53. };