diff --git a/package.json b/package.json index 3c9c16f..9c38971 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "prettier": "^2.5.1", "pretty-quick": "^3.1.3", "rollup": "^2.61.1", + "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.31.1", "rollup-plugin-version-injector": "^1.3.3", "typescript": "^4.5.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62581ce..ded421d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,6 +18,7 @@ specifiers: prettier: ^2.5.1 pretty-quick: ^3.1.3 rollup: ^2.61.1 + rollup-plugin-terser: ^7.0.2 rollup-plugin-typescript2: ^0.31.1 rollup-plugin-version-injector: ^1.3.3 typescript: ^4.5.4 @@ -40,6 +41,7 @@ devDependencies: prettier: 2.5.1 pretty-quick: 3.1.3_prettier@2.5.1 rollup: 2.61.1 + rollup-plugin-terser: 7.0.2_rollup@2.61.1 rollup-plugin-typescript2: 0.31.1_fc61fb9ab7e80f67b35d395e823a1916 rollup-plugin-version-injector: 1.3.3 typescript: 4.5.4 @@ -854,7 +856,6 @@ packages: resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } requiresBuild: true dev: true - optional: true /commander/8.3.0: resolution: { integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== } @@ -1807,6 +1808,15 @@ packages: resolution: { integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= } dev: true + /jest-worker/26.6.2: + resolution: { integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== } + engines: { node: '>= 10.13.0' } + dependencies: + '@types/node': 17.0.2 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jju/1.4.0: resolution: { integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo= } dev: true @@ -2347,6 +2357,12 @@ packages: engines: { node: '>=8' } dev: true + /randombytes/2.1.0: + resolution: { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } + dependencies: + safe-buffer: 5.2.1 + dev: true + /read-pkg-up/7.0.1: resolution: { integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== } engines: { node: '>=8' } @@ -2470,6 +2486,20 @@ packages: glob: 7.2.0 dev: true + /rollup-plugin-terser/7.0.2_rollup@2.61.1: + resolution: { integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== } + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.16.0 + jest-worker: 26.6.2 + rollup: 2.61.1 + serialize-javascript: 4.0.0 + terser: 5.10.0 + transitivePeerDependencies: + - acorn + dev: true + /rollup-plugin-typescript2/0.31.1_fc61fb9ab7e80f67b35d395e823a1916: resolution: { integrity: sha512-sklqXuQwQX+stKi4kDfEkneVESPi3YM/2S899vfRdF9Yi40vcC50Oq4A4cSZJNXsAQE/UsBZl5fAOsBLziKmjw== } peerDependencies: @@ -2556,6 +2586,12 @@ packages: lru-cache: 6.0.0 dev: true + /serialize-javascript/4.0.0: + resolution: { integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== } + dependencies: + randombytes: 2.1.0 + dev: true + /shebang-command/2.0.0: resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } engines: { node: '>=8' } @@ -2615,6 +2651,11 @@ packages: engines: { node: '>=0.10.0' } dev: true + /source-map/0.7.3: + resolution: { integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== } + engines: { node: '>= 8' } + dev: true + /spdx-correct/3.1.1: resolution: { integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== } dependencies: @@ -2758,6 +2799,21 @@ packages: engines: { node: '>=12' } dev: true + /terser/5.10.0: + resolution: { integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== } + engines: { node: '>=10' } + hasBin: true + peerDependencies: + acorn: ^8.5.0 + peerDependenciesMeta: + acorn: + optional: true + dependencies: + commander: 2.20.3 + source-map: 0.7.3 + source-map-support: 0.5.21 + dev: true + /text-extensions/1.9.0: resolution: { integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== } engines: { node: '>=0.10' } diff --git a/scripts/rollup.config.js b/scripts/rollup.config.js index d3101e8..4d813be 100644 --- a/scripts/rollup.config.js +++ b/scripts/rollup.config.js @@ -2,13 +2,22 @@ import path from 'path'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import typescriptPlugin from 'rollup-plugin-typescript2'; import versionInjector from 'rollup-plugin-version-injector'; +import { terser } from 'rollup-plugin-terser'; import minimist from 'minimist'; const args = minimist(process.argv.slice(2)); const isProduction = args.configProduction; import pkg from '../package.json'; - const umdOutput = 'dist/rage-rpc.umd.js'; +const productionMode = isProduction + ? terser({ + keep_classnames: true, + keep_fnames: true, + output: { + comments: false + } + }) + : []; const onwarn = (msg, warn) => { if (!/Circular|The 'this' keyword/.test(msg)) { @@ -58,7 +67,8 @@ function createConfig(output) { fileRegexp: /\.(js|mjs|html|css)$/ }, injectInComments: false - }) + }), + productionMode ], inlineDynamicImports: true, onwarn