{"_id":"@bpa-solutions/spfx-build-metrics","_rev":"3-ea258c94f034f0eb7e7e5b0d3a519d63","name":"@bpa-solutions/spfx-build-metrics","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@bpa-solutions/spfx-build-metrics","version":"1.0.0","description":"Do some metrics for SPFx Build, and generate a report in user home directory","main":"dist/index.js","module":"lib/index.js","types":"lib/index.d.ts","author":{"name":"Léo Maradan","email":"leo.maradan@bpa-solutions.net"},"license":"MIT","dependencies":{"@types/node":"^15.3.1","@types/pretty-time":"^1.1.0","@types/webpack":"^5.28.0","@types/webpack-bundle-analyzer":"^4.4.0","pretty-time":"^1.1.0","prettysize":"^2.0.0","tty-table":"^4.1.3","typescript":"4.1.5","webpack-bundle-analyzer":"^4.4.2"},"scripts":{"tsc":"tsc && yarn bundle","bundle":"rollup lib/index.js --file dist/index.js --format cjs"},"devDependencies":{"rollup":"^2.48.0"},"gitHead":"301fecd3129a4e9e1b4f4448fe9b18b1d51434d4","_id":"@bpa-solutions/spfx-build-metrics@1.0.0","_nodeVersion":"10.23.2","_npmVersion":"6.14.10","dist":{"integrity":"sha512-fKmk/7N9y81nWqQ1RAtPHkqvdbJUm2tA4VKxQCpjVMNQBzQA9tXh0pXqwOJoCgx6oRkiCTIOSiMS+HNqJPcw8g==","shasum":"a74ba168e77ab7e98074d7afbd17f18bdc7529cb","tarball":"https://registry.npmjs.org/@bpa-solutions/spfx-build-metrics/-/spfx-build-metrics-1.0.0.tgz","fileCount":16,"unpackedSize":34894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgp8hdCRA9TVsSAnZWagAAExcP/R264+YRKiPTN8Tot02n\njsor2UzdEPyE1bA85M8HX4M+gQJb2Nm7YwYUqAdgoYGRvOlNHx7Hf9Nm3T8O\nzM1LGnbtp0t9Rt4TUj+ymoTNDduWgDpat8bBDo7x0T4qmIu4S6ncDFJXbluY\nmiH8mTn0oERXsjJ8E456SBB9EjGn+/4sn0YLIoXrSXKcd9TJ5yCxWAYFGljE\nkeQ0lAlt+aZEIBE39ita3sqsgZAdOjpcDwCXzSl3T3y5aIIpLnMgyZlk3Hef\nPUPFl+nQb+jo/2Fzb2wPF+usXhsinvVIqCDbMQg4gT3umHimwvBrVz7wq/WW\nexn/0cZ0czd+k7y4idJO3qGJThUSgFzeRj0M+UAvzWmm7nUVRXxqUCcNpSAk\nN53HPKZfqEd4RdmQD+hgukTHixs6Rm/1hKZqeFtqc0z+nvyVlfJQfMPhU8PU\n0xvvOTaYFyJbowJOGJK0KtB4okzmyVrHvfIPA3nAhgtAjHCNSbgm3L1fHVwm\nABuqaWLeF7Kz5+vefRYZ+yB9cxaMmBn1V6m7jgWOixBXSTWO1jlwcw5V2iGz\nl1Z2Y49A915qGTFKy800d8sCmvquUpBJosZ2cpthYNFws4sSxK52HcAHlbfD\nQNrboeFzEDbtzHPFbb2/BowkRlq4cTEu6gySXsOb3bJON/RKwX8PQ8VDg0aS\nbXU3\r\n=WuEh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICTnc1dRJN6a1KVuzEURQf3+ME6sfyFww7ycF0w4T1lpAiEA4QZZxpYJ1T0NsjO55RNEIl9CaK/NOOzDEl9//9ZIkpM="}]},"_npmUser":{"name":"leomaradan","email":"npm@leomaradan.com"},"directories":{},"maintainers":[{"name":"leomaradan","email":"npm@leomaradan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spfx-build-metrics_1.0.0_1621608540600_0.1587933093208207"},"_hasShrinkwrap":false},"1.0.1":{"name":"@bpa-solutions/spfx-build-metrics","version":"1.0.1","description":"Do some metrics for SPFx Build, and generate a report in user home directory","main":"dist/index.js","module":"lib/index.js","types":"lib/index.d.ts","author":{"name":"Léo Maradan","email":"leo.maradan@bpa-solutions.net"},"license":"MIT","dependencies":{"@types/node":"^15.3.1","@types/pretty-time":"^1.1.0","@types/webpack":"^5.28.0","@types/webpack-bundle-analyzer":"^4.4.0","pretty-time":"^1.1.0","prettysize":"^2.0.0","tty-table":"^4.1.3","typescript":"4.1.5","webpack-bundle-analyzer":"^4.4.2"},"scripts":{"tsc":"tsc && yarn bundle","bundle":"rollup lib/index.js --file dist/index.js --format cjs"},"devDependencies":{"rollup":"^2.48.0"},"gitHead":"d4394ff7c5cef275254970c1b57ef7bbf2310791","_id":"@bpa-solutions/spfx-build-metrics@1.0.1","_nodeVersion":"10.23.2","_npmVersion":"6.14.10","dist":{"integrity":"sha512-J+ArKeDp67Vm6cthQCMDVDLZUGGqq/oz90Vsh0G3ES8pdEPgpw6ccMc0TgJVStqEsowWZ5yg5fc07fwY88yaiw==","shasum":"a9ca86fc20b1b39c4a916b5861dfc43ddd9397e0","tarball":"https://registry.npmjs.org/@bpa-solutions/spfx-build-metrics/-/spfx-build-metrics-1.0.1.tgz","fileCount":17,"unpackedSize":36738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgp82cCRA9TVsSAnZWagAApFkP+wWB5UaxHcD4hRkQ0dC/\nDzRwyQ6iU5Dgx9WEt8CtcqO/nDFJI5Vv+GlWUHDkRnVCcaHDFHsWfSQM8raQ\n9ysnyjx6MaOxyNuxVEAfqkNJdVDwgOODGp7vCFNhvTSAwqUezp63jrbOAtak\nIOmU+rh20ziXO4B6bvXN+6VW73iepAJsu6O7JnC4QX0ZwG8TlbJ006ynZGYB\n9LOd9F4x/ZRiheJH2exHDUXE5/jBsxKsyV7H6VmMspaDK6S68SYoIeTP3vtk\n+HR7mO5WIgBgH5QabxjxqwIpNcvuPMAPwhxwStDGUOcWl/sF98oXB+Y9fOYm\nFp7IX1PBsDTyQggV4k/sDMI/GvicdlCwpzdiCR1odqTCsbrkFGDdlyoOfvdo\nVRof9xH9ZOD9nypbEzCaNJUv/qD+bUH/AhGLl0/C12Xhr0g+QjbUjOvIBjFs\nwVSiIa/MwFBXawjUZoQn5IDuICF5Iz1WbetKLJXGba+zqKh9yBh3dcmWGJ5F\nH7WoUaAOCCoafBKx1Its7LwA/QVFL+KIiExWXnXOh3IqXjFElr5ZEfNudF2R\noNw/CFdy74QO4LKcsYs88ots3tv7iyRFeVbvmwZDi58vxnuHt12PeH58dmIb\nFqJpKH9Dl78FfT3gqwhQpTC7INiVfGk3FOdQSYqtW4TEzH4qAPVV9/TEGHfm\nPQ7H\r\n=Fzq/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxnTaQvzBE19zHADaV5SDPZ7m1tj5JvC6BiZPMPS3PjgIgevoU/efZtIo5d2cZnYV5CTBxrHmfUX/kPNO1/6BwCEs="}]},"_npmUser":{"name":"leomaradan","email":"npm@leomaradan.com"},"directories":{},"maintainers":[{"name":"leomaradan","email":"npm@leomaradan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spfx-build-metrics_1.0.1_1621609883473_0.09091176180225924"},"_hasShrinkwrap":false},"1.0.2":{"name":"@bpa-solutions/spfx-build-metrics","version":"1.0.2","description":"Do some metrics for SPFx Build, and generate a report in user home directory","main":"dist/index.js","module":"lib/index.js","types":"lib/index.d.ts","author":{"name":"Léo Maradan","email":"leo.maradan@bpa-solutions.net"},"license":"MIT","dependencies":{"@types/node":"^15.3.1","@types/pretty-time":"^1.1.0","@types/webpack":"^5.28.0","@types/webpack-bundle-analyzer":"^4.4.0","pretty-time":"^1.1.0","prettysize":"^2.0.0","tty-table":"^4.1.3","typescript":"4.1.5","webpack-bundle-analyzer":"^4.4.2"},"scripts":{"tsc":"tsc && yarn bundle","bundle":"rollup lib/index.js --file dist/index.js --format cjs"},"devDependencies":{"rollup":"^2.48.0"},"_id":"@bpa-solutions/spfx-build-metrics@1.0.2","dist":{"shasum":"1c3d26ff5fc2a19a8ea50e8c5edb0e3613854a12","integrity":"sha512-j/HF2haJ0ToRNVkEJr5a9fHJ84MajWoemxoTmOUgbaMUUeSp7CAQkYqvlErWmCsEyIUnJLQhHGEdPY7zj5foYw==","tarball":"https://registry.npmjs.org/@bpa-solutions/spfx-build-metrics/-/spfx-build-metrics-1.0.2.tgz","fileCount":21,"unpackedSize":37453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrmXWCRA9TVsSAnZWagAARxIP/0+ivyxb3nU+AnKWSJL4\nSdS4+OAVeZCDBlkybNcNtqOPIoGsaRxzxO0xbR6Q0JI2V+LN/S4HbYyJaZGs\nCbTDLCB5ePoWK142TGsfKYISD+RPl3FYExD2Ce7k6oXm5tA9aYKWwDbJM+5G\nKygykFK7h7vkws7k6Ju1PWcACKqNO3ba8IAJJ3gxC9vN6oRdyob26dbervqO\nDAQAjpWrOurLVUyNY8+PZw3uUHiBw7d/55yvkGHVfTUUj4OIqWgkrIb0id2i\nCrxm6SXyfQOYy84D5FrNR+jtAQw345PwdvA8xFiz0quD16x8Bz7npye8LgKB\npkx6ZSBE/3VBAyofFvz+6pUs8+wd8iiXoEQNyYINxGufqvothuyXrWnhE+ms\np6Gb3y+KKy9tfQiCw2sVQO377UItQwhYKGqCRiKFRPzKnq7i8APlJ7xLv7qw\nh8Yh13C7HiBij1f2HmRcFWNL/v6cmAJX1D2H2MKIRVCbLn9KD+fW9aWIhfno\nguee4AtuvcpX2WVrGiCyTl7kTKN0G7AIsTUwDteuRNv63bABCaFtk0ZFaDTc\nE7LL0ELNNb+HUli3SPYSuh27yPftq0H3sqF/txejjkwwar+FuVR/goY26hJ3\nITCG5S6UFdASbAU9Lha40GXtb85GQFr441gDf3WBFToTiRzgX0s6+XS5tRMT\nm+f+\r\n=7tgL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZRR5JcnKDIW3aDXl1IVcJiT/wH2ZFqqhuEGXum8bhYAiEA8S3fn22EL5BfcAEmcJv0DUoUDk+d5M/q/onnjeOnBt0="}]},"_npmUser":{"name":"leomaradan","email":"npm@leomaradan.com"},"directories":{},"maintainers":[{"name":"leomaradan","email":"npm@leomaradan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spfx-build-metrics_1.0.2_1622042069951_0.7927117487939002"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-21T14:49:00.313Z","1.0.0":"2021-05-21T14:49:00.752Z","modified":"2022-04-04T20:18:38.448Z","1.0.1":"2021-05-21T15:11:23.652Z","1.0.2":"2021-05-26T15:14:30.089Z"},"maintainers":[{"name":"leomaradan","email":"npm@leomaradan.com"}],"description":"Do some metrics for SPFx Build, and generate a report in user home directory","author":{"name":"Léo Maradan","email":"leo.maradan@bpa-solutions.net"},"license":"MIT","readme":"# SPFx Build Metrics\n\nThis tool help to identify some bottleneck in the SPFx Build, by logging the build time and memory usage for some steps:\n\n- Booting (from the launching of the build task to the TypeScript parsing)\n- TypeScript Parsing\n- JS Bundling\n- Solution Packaging\n\nIt also offer a method to add more metrics steps\n\n## How to use\n\nin gulpfile.js\n\n```javascript\nconst gulp = require(\"gulp\");\nlet build = require(\"@microsoft/sp-build-web\");\nconst Metrics = require(\"@bpa-solutions/spfx-build-metrics\");\n\nglobal.spfxMetrics.doMetrics = Metrics.doMetrics;\n\nMetrics.start(\n  {\n    spfx: \"1.11\", // Current SPFx Version\n    bundler: \"wp4\", // The bundler used.\n    typescript: \"3.9\", // TypeScript version\n    monorepo: \"lerna\", // Tool used to manage the monorepo\n    structure: \"partial-mono\", // Project Structure\n    workflow: \"ms-build\", // Project Workflow\n    steps: [\n      \"Project Booting\",\n      \"Building sources\",\n      \"Bundling\",\n      \"Package Solution\",\n    ],\n    writeReport: true,\n    displayReport: true,\n  },\n  build,\n  isDev, // Is the build in dev or in prod\n  path.resolve(__dirname, \"dist\") // Absolute path to dist folder\n);\n\ngulp.task(\"metrics-end\", () => {\n  Metrics.end();\n});\n\ngulp.task(\"dist\", gulpSequence(\"bundle\", \"package-solution\", \"metrics-end\"));\n```\n\n### Add Step in copy-assets\n\nWe need to modify the file `node_modules/@microsoft/sp-build-core-tasks/lib/copyAssets/CopyAssetsTask.js`, and add `global.spfxMetrics.doMetrics();` on the executeTask function\n\n```javascript\n    executeTask(gulp, completeCallback) {\n\n      global.spfxMetrics.doMetrics();\n```\n\n### Add the bundleAnalyzer\n\nin gulpfile.js\n\n```javascript\nbuild.configureWebpack.mergeConfig({\n  additionalConfiguration: (generatedConfiguration) => {\n    generatedConfiguration = Metrics.bundleAnalyzer(generatedConfiguration);\n  },\n});\n```\n","readmeFilename":"README.md"}