Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Bundle analyzer #4141

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cspell.json
Expand Up @@ -4,6 +4,8 @@
"words": [
"Atsumu",
"autoprefixer",
"treemap",
"Dont",
"barbaz",
"Cantarell",
"Chizuru",
Expand Down
159 changes: 159 additions & 0 deletions packages/webpack-cli/bin/bundle-analyzer-flags.js
@@ -0,0 +1,159 @@
"use strict";

module.exports = {
version: {
configs: [
{
type: "boolean",
multiple: false,
description: "Output the version number",
path: "version",
},
],
description: "Output the version number",
simpleType: "boolean",
multiple: false,
},
mode: {
configs: [
{
type: "enum",
values: ["server", "static", "json"],
multiple: false,
description: "The mode to run the analyzer in: server, static, or json.",
path: "mode",
defaultValue: "server",
},
],
description: "The mode to run the analyzer in: server, static, or json.",
simpleType: "string",
multiple: false,
},
report: {
configs: [
{
type: "string",
multiple: false,
description: 'Path to bundle report file that will be generated in "static" mode.',
path: "report",
defaultValue: "report.html",
},
],
description: 'Path to bundle report file that will be generated in "static" mode.',
simpleType: "string",
multiple: false,
},
title: {
configs: [
{
type: "string",
multiple: false,
description: "String to use in title element of html report.",
path: "title",
defaultValue: "Webpack Bundle Report",
},
],
description: "String to use in title element of html report.",
simpleType: "string",
multiple: false,
},
size: {
configs: [
{
type: "enum",
values: ["stat", "parsed", "gzip"],
multiple: false,
description: "Module sizes to show in treemap by default.",
path: "defaultSizes",
defaultValue: "parsed",
},
],
description: "Module sizes to show in treemap by default.",
simpleType: "string",
multiple: false,
},
"Dont Open": {
configs: [
{
type: "boolean",
multiple: false,
description: "Don't open report in default browser automatically",
path: "noOpen",
defaultValue: false,
},
],
description: "Don't open report in default browser automatically",
simpleType: "boolean",
multiple: false,
},
port: {
configs: [
{
type: "number",
multiple: false,
description: "Port that will be used in `server` mode, default is 8888.",
path: "port",
defaultValue: 8888,
},
],
description: "Port that will be used in `server` mode, default is 8888.",
simpleType: "number",
multiple: false,
},
host: {
configs: [
{
type: "string",
multiple: false,
description: "Host that will be used in `server` mode, default is 127.0.0.1.",
path: "host",
defaultValue: "127.0.0.1",
},
],
description: "Host that will be used in `server` mode, default is 127.0.0.1.",
simpleType: "string",
multiple: false,
},
"log-level": {
configs: [
{
type: "enum",
values: ["debug", "info", "warn", "error", "silent"],
multiple: true,
description: "Level of logger (info, warn, error, silent).",
path: "logLevel",
defaultValue: "info",
},
],
description: "Level of logger (info, warn, error, silent).",
simpleType: "string",
multiple: true,
},
exclude: {
configs: [
{
type: "string",
multiple: false,
description: "Assets that should be excluded from the report.",
path: "exclude",
defaultValue: "",
},
],
description: "Assets that should be excluded from the report.",
simpleType: "string",
multiple: false,
},
help: {
configs: [
{
type: "boolean",
multiple: false,
description: "output usage information",
path: "help",
},
],
description: "Output usage information",
simpleType: "boolean",
multiple: false,
},
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please send it to https://github.com/webpack-contrib/webpack-bundle-analyzer, this PR should be done in webpack-bundle-analyzer repo and here we just will read it from require("webpack-bundle-analyzer").cli.arguments

Empty file modified packages/webpack-cli/bin/cli.js 100755 → 100644
Empty file.
1 change: 0 additions & 1 deletion packages/webpack-cli/src/types.ts
Expand Up @@ -171,7 +171,6 @@ type WebpackDevServerOptions = DevServerConfig &
nodeEnv?: "string";
watchOptionsStdin?: boolean;
progress?: boolean | "profile" | undefined;
analyze?: boolean;
prefetch?: string;
json?: boolean;
entry: EntryOptions;
Expand Down
1 change: 0 additions & 1 deletion packages/webpack-cli/src/webpack-cli.ts
Expand Up @@ -986,7 +986,6 @@ class WebpackCLI implements IWebpackCLI {
helpLevel: "verbose",
},

// Adding more plugins
{
name: "analyze",
configs: [
Expand Down