{"_id":"bundle-buddy","_rev":"2933458","name":"bundle-buddy","description":"Bundle Buddy ====","dist-tags":{"latest":"0.2.2"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"time":{"modified":"2023-03-27T02:34:32.000Z","created":"2017-07-09T22:11:28.111Z","0.2.2":"2019-10-04T16:22:50.087Z","0.2.1":"2017-11-03T14:35:44.256Z","0.2.0":"2017-11-03T14:32:31.975Z","0.1.2":"2017-07-14T03:54:33.405Z","0.1.1":"2017-07-10T18:10:49.182Z","0.1.0":"2017-07-10T04:02:53.434Z","0.0.4":"2017-07-09T22:31:41.969Z","0.0.3":"2017-07-09T22:27:16.524Z","0.0.2":"2017-07-09T22:19:16.920Z","0.0.1":"2017-07-09T22:11:28.111Z"},"users":{},"versions":{"0.2.2":{"name":"bundle-buddy","version":"0.2.2","dependencies":{"chalk":"^2.0.1","express":"^4.17.1","globby":"^6.1.0","meow":"^3.7.0","opn":"^5.1.0","portfinder":"^1.0.24","source-map":"^0.5.6"},"license":"MIT","devDependencies":{"@types/chalk":"^0.4.31","@types/express":"^4.17.1","@types/globby":"^0.6.0","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"7746d3497d8d3d53219698e9be6c4a913c257a68","description":"Bundle Buddy ====","_id":"bundle-buddy@0.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"32f478f90d5906da99b96496dfa3d5142328feec","size":3734865,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.2.2.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy_0.2.2_1570206169886_0.7898559303763002"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-19T11:23:58.509Z","publish_time":1570206170087,"_cnpm_publish_time":1570206170087},"0.2.1":{"name":"bundle-buddy","version":"0.2.1","dependencies":{"chalk":"^2.0.1","globby":"^6.1.0","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"license":"MIT","devDependencies":{"@types/chalk":"^0.4.31","@types/globby":"^0.6.0","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"512c07e4888d498cea7a7ca5f2e02ff4d63da0eb","description":"Bundle Buddy ====","_id":"bundle-buddy@0.2.1","_shasum":"f8caa1c05004b24f2919c206055a1fc3f7d4167e","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"f8caa1c05004b24f2919c206055a1fc3f7d4167e","size":3727356,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.2.1.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.2.1.tgz_1509719742899_0.06492827972397208"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:56.107Z","publish_time":1509719744256,"_cnpm_publish_time":1509719744256},"0.2.0":{"name":"bundle-buddy","version":"0.2.0","dependencies":{"chalk":"^2.0.1","globby":"^6.1.0","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"license":"MIT","devDependencies":{"@types/chalk":"^0.4.31","@types/globby":"^0.6.0","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"8e4afab8f6b8b3fbcbfd3052df012bfd1aaf3e56","description":"Bundle Buddy ====","_id":"bundle-buddy@0.2.0","_shasum":"99a6fe6a42df4f0d5c77712e18f9592f503de0cb","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"99a6fe6a42df4f0d5c77712e18f9592f503de0cb","size":6134422,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.2.0.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.2.0.tgz_1509719551744_0.7494642317760736"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:53.682Z","publish_time":1509719551975,"_cnpm_publish_time":1509719551975},"0.1.2":{"name":"bundle-buddy","version":"0.1.2","dependencies":{"chalk":"^2.0.1","globby":"^6.1.0","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/globby":"^0.6.0","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"2a365ca46b51126eb38661d33673d30ffd3579ce","description":"Bundle Buddy ====","_id":"bundle-buddy@0.1.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.4","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"211b74ee609eb0ddb65ade42fde36f13bfdcdb1e","size":3728108,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.1.2.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.1.2.tgz_1500004468603_0.10958214779384434"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:50.908Z","publish_time":1500004473405,"_cnpm_publish_time":1500004473405},"0.1.1":{"name":"bundle-buddy","version":"0.1.1","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"af6b6f6c4cfd8ccbb62841a3bf57fd6e6fea0a32","description":"Bundle Buddy ====","_id":"bundle-buddy@0.1.1","_shasum":"e7dd5c2ee06de256b1de665e2583fb7a8d597845","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"e7dd5c2ee06de256b1de665e2583fb7a8d597845","size":3742920,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.1.1.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.1.1.tgz_1499710248884_0.4553982079960406"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:48.518Z","publish_time":1499710249182,"_cnpm_publish_time":1499710249182},"0.1.0":{"name":"bundle-buddy","version":"0.1.0","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"6bd730b16817e09014089f151598612dc73a1b08","description":"Bundle Buddy ====","_id":"bundle-buddy@0.1.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"0eb9753bd3c07a6b7bddd6e5a2dda47baf3f6ffa","size":3727481,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.1.0.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.1.0.tgz_1499659371283_0.07688006479293108"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:46.060Z","publish_time":1499659373434,"_cnpm_publish_time":1499659373434},"0.0.4":{"name":"bundle-buddy","version":"0.0.4","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"690479c80d619f1b96458cb18739a52c3ec63175","description":"Bundle buddy helps you find **duplicated** code across your bundle splits.","_id":"bundle-buddy@0.0.4","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"a2b9b283ac3ae84b7f9ccab87a743c0a78166ba7","size":3725615,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.0.4.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.0.4.tgz_1499639501621_0.6920407374855131"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:43.723Z","publish_time":1499639501969,"_cnpm_publish_time":1499639501969},"0.0.3":{"name":"bundle-buddy","version":"0.0.3","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"690479c80d619f1b96458cb18739a52c3ec63175","description":"Bundle buddy helps you find **duplicated** code across your bundle splits.","_id":"bundle-buddy@0.0.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"8177fea63567a6b3302415c020f99b8fdb557201","size":16418295,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.0.3.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.0.3.tgz_1499639236047_0.7035439764149487"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:41.027Z","publish_time":1499639236524,"_cnpm_publish_time":1499639236524},"0.0.2":{"name":"bundle-buddy","version":"0.0.2","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"286694490fa8a6e25cde62cb0272fb2402abd288","description":"Bundle buddy helps you find **duplicated** code across your bundle splits.","_id":"bundle-buddy@0.0.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"6564ff805efaac2235c5b12751c34aa45e4b07a9","size":1290695,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.0.2.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.0.2.tgz_1499638756665_0.48206409555859864"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:37.411Z","publish_time":1499638756920,"_cnpm_publish_time":1499638756920},"0.0.1":{"name":"bundle-buddy","version":"0.0.1","dependencies":{"chalk":"^2.0.1","http-server":"^0.10.0","meow":"^3.7.0","openport":"^0.0.4","opn":"^5.1.0","source-map":"^0.5.6"},"devDependencies":{"@types/chalk":"^0.4.31","@types/meow":"^3.6.2","@types/node":"^8.0.2","@types/opn":"^3.0.28","@types/source-map":"^0.5.0","husky":"^0.14.1","lint-staged":"^4.0.0","prettier":"^1.4.4","ts-node":"^3.1.0","typescript":"^2.3.4"},"scripts":{"start":"ts-node index.ts","precommit":"lint-staged","build":"tsc","prepare-publish":"yarn run build && cd viz && yarn run build"},"bin":{"bundle-buddy":"bin.js"},"lint-staged":{"*.ts":["prettier --write","git add"],"*.js":["prettier --write","git add"]},"gitHead":"286694490fa8a6e25cde62cb0272fb2402abd288","description":"Bundle buddy helps you find **duplicated** code across your bundle splits.","_id":"bundle-buddy@0.0.1","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"samccone","email":"sam@samx.it"},"dist":{"shasum":"1e6079bfe5ebb605ad76d8e913c531090d87a9c3","size":13981847,"noattachment":false,"key":"/bundle-buddy/-/bundle-buddy-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bundle-buddy/download/bundle-buddy-0.0.1.tgz"},"maintainers":[{"name":"samccone","email":"samccone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bundle-buddy-0.0.1.tgz_1499638285351_0.8695519596803933"},"directories":{},"_cnpmcore_publish_time":"2021-12-19T11:23:34.949Z","publish_time":1499638288111,"_cnpm_publish_time":1499638288111}},"readme":"Bundle Buddy\n====\n\nBundle Buddy is a tool to help you find source code duplication across your javascript chunks/splits. This enables you to fine tune code splitting parameters to reduce bundle invalidation rates as well as improve repeat page load performance \\o/.\n\n<a href=\"https://bundle-buddy.firebaseapp.com\"><img src=\"https://user-images.githubusercontent.com/883126/28001744-ed90cef4-64e3-11e7-919a-f27ced92f9b9.png\" height=\"400px\"><caption><p><small><b>Example Bundle Buddy UI</b></small></p></caption></a>\n\n\nBundle Buddy operates on any source maps, but you *must* include the source content. It will work for any CSS/JS/TEMPLATES etc. that is mapped.\n\nIn webpack this means setting devtool to `source-map`\nhttps://webpack.js.org/guides/development/#source-maps\n\n### webpack users\nIf you are using webpack, you can also try the [bundle-buddy-webpack-plugin](https://github.com/TheLarkInn/bundle-buddy-webpack-plugin). This helps ensure you configure your sourcemaps correctly, and lets you run bundle-buddy directly from a webpack build. You might want to use this if you don't want to use bundle buddy standalone!\n\n-----\n\n## How to use?\n\nBuild your app, then run directly via npx\n\n```bash\nnpx bundle-buddy my-app/public/*.map\n```\n\nOr you can install into your project and run with npm\n\n```bash\nnpm install -g bundle-buddy\n\nbundle-buddy my-app/public/*.map\n```\n\n### Bundle Buddy UI interactions.\n\n<img height=\"400px\" src=\"https://user-images.githubusercontent.com/883126/28001816-9f045656-64e4-11e7-8439-54e7091b29ff.png\">\n\nWhen you select a bundle on the left panel, you can then see the bundle breakdown, which shows you the most duplicated source lines across bundles that the currently selected bundle contains.\n\nAfter clicking on a bundle chunk we will then show you the lines of the source file that are repeated as well as what other bundles contain said source lines.\n\n\n### Acting on the results.\n\nThe ideal workflow flow using Bundle Buddy is to first identify what code is most duplicated across the project's bundles, then to utilize a common code bundling techique (https://webpack.js.org/plugins/commons-chunk-plugin/), then to rebuild your site, and then *finally* to measure again to see your impact.\n\n### How does this work?\n\nBundle Buddy builds up a mapping across every source map of every file and each line in each file that is used. This enables Bundle Buddy to detect common source lines between different project chunks.\n\n----\n\n\n### Contributing\n\nWorking on the front end is simple\n\n```bash\ncd viz\nyarn install\nyarn start\n```\n\nWorking on the CLI component is also straight forward, you just need to build the front end once first.\n\n```bash\npushd viz\nyarn install\nyarn build\npopd\nyarn install\nyarn start --demo\n```\n","_attachments":{},"license":"MIT"}