All Projects → aholachek → Bundle Wizard

aholachek / Bundle Wizard

Magically easy insight into the JavaScript loaded by a web app

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Bundle Wizard

Lighthouse Batch
Run Lighthouse analysis over multiple sites in a single command
Stars: ✭ 83 (-82.67%)
Mutual labels:  developer-tools, performance
Web Vitals Extension
A Chrome extension to measure essential metrics for a healthy site
Stars: ✭ 1,943 (+305.64%)
Mutual labels:  developer-tools, performance
Pyroscope
Continuous Profiling Platform! Debug performance issues down to a single line of code
Stars: ✭ 4,816 (+905.43%)
Mutual labels:  developer-tools, performance
Iris
The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |
Stars: ✭ 21,587 (+4406.68%)
Mutual labels:  performance
Laravel Kit
A desktop Laravel admin panel app
Stars: ✭ 440 (-8.14%)
Mutual labels:  developer-tools
Trace Nodejs
Trace is a visualised distributed tracing platform designed for microservices.
Stars: ✭ 471 (-1.67%)
Mutual labels:  performance
Netfabric.hyperlinq
High performance LINQ implementation with minimal heap allocations. Supports enumerables, async enumerables, arrays and Span<T>.
Stars: ✭ 479 (+0%)
Mutual labels:  performance
Happypack
Happiness in the form of faster webpack build times.
Stars: ✭ 4,232 (+783.51%)
Mutual labels:  performance
Processhacker
A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware.
Stars: ✭ 6,285 (+1212.11%)
Mutual labels:  performance
Gearbox
Gearbox ⚙️ is a web framework written in Go with a focus on high performance
Stars: ✭ 455 (-5.01%)
Mutual labels:  performance
Ctags
A maintained ctags implementation
Stars: ✭ 4,768 (+895.41%)
Mutual labels:  developer-tools
Magento2 Vagrant For Developers
Vagrant Box for Magento 2 Developers
Stars: ✭ 451 (-5.85%)
Mutual labels:  developer-tools
Scandir
Better directory iterator and faster os.walk(), now in the Python 3.5 stdlib
Stars: ✭ 471 (-1.67%)
Mutual labels:  performance
React Virtualized
React components for efficiently rendering large lists and tabular data
Stars: ✭ 22,963 (+4693.95%)
Mutual labels:  performance
Android Tips Tricks
☑️ [Cheatsheet] Tips and tricks for Android Development
Stars: ✭ 4,496 (+838.62%)
Mutual labels:  performance
Pprof
pprof is a tool for visualization and analysis of profiling data
Stars: ✭ 4,990 (+941.75%)
Mutual labels:  performance
Reactivesearch
Search UI components for React and Vue: powered by appbase.io / Elasticsearch
Stars: ✭ 4,531 (+845.93%)
Mutual labels:  developer-tools
Orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. OrientDB Community Edition is Open Source using a liberal Apache 2 license.
Stars: ✭ 4,394 (+817.33%)
Mutual labels:  performance
Halide
a language for fast, portable data-parallel computation
Stars: ✭ 4,722 (+885.8%)
Mutual labels:  performance
Herbie
Optimize floating-point expressions for accuracy
Stars: ✭ 459 (-4.18%)
Mutual labels:  developer-tools

🧙‍♂️ bundle-wizard

npm version

This command line utility makes it simple to create visualizations of the JS bundles that were fetched for any specific page (or "entry point") of a web app.

Example

npx bundle-wizard reddit.com

bundle-wizard interaction showing code for reddit

Check out a live demo of this visualization

Try it out on a production app:

Try any of the following commands to take a peek at the JavaScript code different sites are shipping:

  1. npx bundle-wizard reddit.com
  2. npx bundle-wizard codesandbox.io
  3. npx bundle-wizard gatsbyjs.org
  4. npx bundle-wizard codecademy.com
  5. npx bundle-wizard id.atlassian.com

Try it out on an app running locally:

Want to use bundle-wizard but haven't deployed your app yet? It's as easy as:

1. Build your app locally

e.g. npm run build

2. Serve the build folder

e.g. npx serve -s build

3. Call bundle-wizard with the correct localhost url

e.g. npx bundle-wizard localhost:5000/sign-up

Additional features

View source code

If sourcemaps are properly configured you should be able to click on a square to see the code it represents:

demonstration of code feature

(Note: for performance reasons, this functionality will be automatically stripped if you decide to package your bundle-wizard files in order to host or share them).

Filter bundles with regex

Want to know all the bundles that contain code from certain library (say, momentjs or lodash)? Wondering how much weight in your bundles is from node_modules vs custom code? You can answer questions like these by putting a search string or regex into the bottom search bar that allows you to filter the view based on the name of the containing folder bundle name, or script:

demo of simple search

Optional command line arguments

url (initial argument)

To skip the initial prompt, provide a url as a first argument:

npx bundle-wizard reddit.com

interact flag

If you need to do some work in the browser getting the page ready for analysis (perhaps by signing in and then visiting a certain page), use the following command:

npx -p puppeteer -p bundle-wizard bundle-wizard --interact

The persistent npm equivalent would be running:

npm install -g puppeteer bundle-wizard

bundle-wizard --interact

You might be wondering why you have to install puppeteer as a peer dependency to use the interact command. By default bundle-wizard uses puppeteer-core, which is faster to download than puppeteer because it doesn't come bundled with a version of chromium. Since the --interact command opens a browser in non-headless mode, unlike the default bundle-wizard command, it requires the full puppeteer package to work reliably.

After running this command and specifying a url, you will see a browser window that will pop up that you can interact with. When you are ready to proceed, type y into the console in respond to the waiting prompt to reload the page and start measuring performance.

Note: While this tool does not record any data, it's still recommended from a common sense perspective to enter login information only for test accounts.

desktop flag

By default, bundle-wizard will analyze a mobile version of the site. To analyze the desktop version instead, pass the --desktop flag:

npx bundle-wizard --desktop

ignoreHTTPSErrors flag

If you are running an HTTPS connection on localhost and want to test a local site, you'll need to use this setting to prevent self-signed certificate errors:

npx bundle-wizard https://localhost:5000 --ignoreHTTPSErrors

port argument

By default, bundle-wizard will try to find an open port in the 3000 range. However, if you'd like it to run on a certain port, you can do so by passing in a value for --port:

npx bundle-wizard https://localhost:3000 --port=4000

How it works

bundle-wizard uses Puppeteer to download a web page, measure performance, and examine the JavaScript it sends to the client. It then analyzes the code using the awesome source-map-explorer library and creates a custom visualization.

Requirement: downloadable sourcemaps

This utility downloads sourcemaps from the url you provide. This requires the sourcemaps to be publically available, or at least available on your network. You might need to point to a testing instead of production build, for instance, as some apps disable sourcemaps in production.

Don't have access to sourcemaps in your prod app? Try building your app locally.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].