rollup.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import nodeResolve from "@rollup/plugin-node-resolve";
  2. import typescript from "@rollup/plugin-typescript";
  3. import replace from "@rollup/plugin-replace";
  4. import commonjs from "@rollup/plugin-commonjs";
  5. import { terser } from "rollup-plugin-terser";
  6. const env = process.env.NODE_ENV;
  7. export default {
  8. input: "src/index.ts",
  9. plugins: [
  10. commonjs(),
  11. nodeResolve({
  12. browser: true,
  13. extensions: [".js", ".ts"],
  14. dedupe: ["bn.js", "buffer"],
  15. preferBuiltins: false,
  16. }),
  17. typescript({
  18. tsconfig: "./tsconfig.base.json",
  19. moduleResolution: "node",
  20. outDir: "types",
  21. target: "es2019",
  22. outputToFilesystem: false,
  23. }),
  24. replace({
  25. preventAssignment: true,
  26. values: {
  27. "process.env.NODE_ENV": JSON.stringify(env),
  28. "process.env.BROWSER": JSON.stringify(true),
  29. },
  30. }),
  31. terser(),
  32. ],
  33. external: [
  34. "@project-serum/borsh",
  35. "@solana/web3.js",
  36. "assert",
  37. "base64-js",
  38. "bn.js",
  39. "bs58",
  40. "buffer",
  41. "camelcase",
  42. "eventemitter3",
  43. "js-sha256",
  44. "pako",
  45. "toml",
  46. ],
  47. output: {
  48. file: "dist/browser/index.js",
  49. format: "es",
  50. sourcemap: true,
  51. },
  52. };