소스 검색

build: add integration with webpack-bundle-analyzer

Build as follows to build (production) bundle size stats:

npx webpack -p --progress --analyze-bundle

Then open the report:

npx webpack-bundle-analyzer stats.json
master
Saúl Ibarra Corretgé 5 년 전
부모
커밋
3cfa548488
4개의 변경된 파일560개의 추가작업 그리고 2개의 파일을 삭제
  1. 1
    0
      .gitignore
  2. 547
    1
      package-lock.json
  3. 1
    0
      package.json
  4. 11
    1
      webpack.config.js

+ 1
- 0
.gitignore 파일 보기

@@ -11,3 +11,4 @@ npm-*.log
11 11
 .jshintignore
12 12
 .jshintrc
13 13
 .DS_Store
14
+stats.json

+ 547
- 1
package-lock.json 파일 보기

@@ -1563,6 +1563,12 @@
1563 1563
         }
1564 1564
       }
1565 1565
     },
1566
+    "acorn-walk": {
1567
+      "version": "6.2.0",
1568
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
1569
+      "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
1570
+      "dev": true
1571
+    },
1566 1572
     "after": {
1567 1573
       "version": "0.8.2",
1568 1574
       "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
@@ -1660,6 +1666,12 @@
1660 1666
       "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
1661 1667
       "dev": true
1662 1668
     },
1669
+    "array-flatten": {
1670
+      "version": "1.1.1",
1671
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
1672
+      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
1673
+      "dev": true
1674
+    },
1663 1675
     "array-slice": {
1664 1676
       "version": "0.2.3",
1665 1677
       "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
@@ -1918,6 +1930,26 @@
1918 1930
         "callsite": "1.0.0"
1919 1931
       }
1920 1932
     },
1933
+    "bfj": {
1934
+      "version": "6.1.2",
1935
+      "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
1936
+      "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==",
1937
+      "dev": true,
1938
+      "requires": {
1939
+        "bluebird": "^3.5.5",
1940
+        "check-types": "^8.0.3",
1941
+        "hoopy": "^0.1.4",
1942
+        "tryer": "^1.0.1"
1943
+      },
1944
+      "dependencies": {
1945
+        "bluebird": {
1946
+          "version": "3.5.5",
1947
+          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
1948
+          "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
1949
+          "dev": true
1950
+        }
1951
+      }
1952
+    },
1921 1953
     "big.js": {
1922 1954
       "version": "3.2.0",
1923 1955
       "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
@@ -2246,6 +2278,12 @@
2246 2278
       "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
2247 2279
       "dev": true
2248 2280
     },
2281
+    "check-types": {
2282
+      "version": "8.0.3",
2283
+      "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
2284
+      "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==",
2285
+      "dev": true
2286
+    },
2249 2287
     "chokidar": {
2250 2288
       "version": "2.0.4",
2251 2289
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
@@ -2432,6 +2470,12 @@
2432 2470
         "lodash": "^4.5.0"
2433 2471
       }
2434 2472
     },
2473
+    "commander": {
2474
+      "version": "2.20.0",
2475
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
2476
+      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
2477
+      "dev": true
2478
+    },
2435 2479
     "commondir": {
2436 2480
       "version": "1.0.1",
2437 2481
       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -2506,6 +2550,23 @@
2506 2550
       "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
2507 2551
       "dev": true
2508 2552
     },
2553
+    "content-disposition": {
2554
+      "version": "0.5.3",
2555
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
2556
+      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
2557
+      "dev": true,
2558
+      "requires": {
2559
+        "safe-buffer": "5.1.2"
2560
+      },
2561
+      "dependencies": {
2562
+        "safe-buffer": {
2563
+          "version": "5.1.2",
2564
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2565
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2566
+          "dev": true
2567
+        }
2568
+      }
2569
+    },
2509 2570
     "content-type": {
2510 2571
       "version": "1.0.4",
2511 2572
       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
@@ -2527,6 +2588,12 @@
2527 2588
       "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
2528 2589
       "dev": true
2529 2590
     },
2591
+    "cookie-signature": {
2592
+      "version": "1.0.6",
2593
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
2594
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
2595
+      "dev": true
2596
+    },
2530 2597
     "copy-concurrently": {
2531 2598
       "version": "1.0.5",
2532 2599
       "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
@@ -2801,6 +2868,12 @@
2801 2868
         "minimalistic-assert": "^1.0.0"
2802 2869
       }
2803 2870
     },
2871
+    "destroy": {
2872
+      "version": "1.0.4",
2873
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
2874
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
2875
+      "dev": true
2876
+    },
2804 2877
     "di": {
2805 2878
       "version": "0.0.1",
2806 2879
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
@@ -2894,6 +2967,12 @@
2894 2967
         "domelementtype": "1"
2895 2968
       }
2896 2969
     },
2970
+    "duplexer": {
2971
+      "version": "0.1.1",
2972
+      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
2973
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
2974
+      "dev": true
2975
+    },
2897 2976
     "duplexify": {
2898 2977
       "version": "3.5.4",
2899 2978
       "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz",
@@ -2912,6 +2991,12 @@
2912 2991
       "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
2913 2992
       "dev": true
2914 2993
     },
2994
+    "ejs": {
2995
+      "version": "2.7.1",
2996
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz",
2997
+      "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==",
2998
+      "dev": true
2999
+    },
2915 3000
     "elliptic": {
2916 3001
       "version": "6.4.1",
2917 3002
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
@@ -3387,6 +3472,12 @@
3387 3472
       "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
3388 3473
       "dev": true
3389 3474
     },
3475
+    "etag": {
3476
+      "version": "1.8.1",
3477
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
3478
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
3479
+      "dev": true
3480
+    },
3390 3481
     "eventemitter3": {
3391 3482
       "version": "3.1.0",
3392 3483
       "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
@@ -3524,6 +3615,181 @@
3524 3615
         }
3525 3616
       }
3526 3617
     },
3618
+    "express": {
3619
+      "version": "4.17.1",
3620
+      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
3621
+      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
3622
+      "dev": true,
3623
+      "requires": {
3624
+        "accepts": "~1.3.7",
3625
+        "array-flatten": "1.1.1",
3626
+        "body-parser": "1.19.0",
3627
+        "content-disposition": "0.5.3",
3628
+        "content-type": "~1.0.4",
3629
+        "cookie": "0.4.0",
3630
+        "cookie-signature": "1.0.6",
3631
+        "debug": "2.6.9",
3632
+        "depd": "~1.1.2",
3633
+        "encodeurl": "~1.0.2",
3634
+        "escape-html": "~1.0.3",
3635
+        "etag": "~1.8.1",
3636
+        "finalhandler": "~1.1.2",
3637
+        "fresh": "0.5.2",
3638
+        "merge-descriptors": "1.0.1",
3639
+        "methods": "~1.1.2",
3640
+        "on-finished": "~2.3.0",
3641
+        "parseurl": "~1.3.3",
3642
+        "path-to-regexp": "0.1.7",
3643
+        "proxy-addr": "~2.0.5",
3644
+        "qs": "6.7.0",
3645
+        "range-parser": "~1.2.1",
3646
+        "safe-buffer": "5.1.2",
3647
+        "send": "0.17.1",
3648
+        "serve-static": "1.14.1",
3649
+        "setprototypeof": "1.1.1",
3650
+        "statuses": "~1.5.0",
3651
+        "type-is": "~1.6.18",
3652
+        "utils-merge": "1.0.1",
3653
+        "vary": "~1.1.2"
3654
+      },
3655
+      "dependencies": {
3656
+        "accepts": {
3657
+          "version": "1.3.7",
3658
+          "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
3659
+          "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
3660
+          "dev": true,
3661
+          "requires": {
3662
+            "mime-types": "~2.1.24",
3663
+            "negotiator": "0.6.2"
3664
+          }
3665
+        },
3666
+        "body-parser": {
3667
+          "version": "1.19.0",
3668
+          "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
3669
+          "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
3670
+          "dev": true,
3671
+          "requires": {
3672
+            "bytes": "3.1.0",
3673
+            "content-type": "~1.0.4",
3674
+            "debug": "2.6.9",
3675
+            "depd": "~1.1.2",
3676
+            "http-errors": "1.7.2",
3677
+            "iconv-lite": "0.4.24",
3678
+            "on-finished": "~2.3.0",
3679
+            "qs": "6.7.0",
3680
+            "raw-body": "2.4.0",
3681
+            "type-is": "~1.6.17"
3682
+          }
3683
+        },
3684
+        "bytes": {
3685
+          "version": "3.1.0",
3686
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
3687
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
3688
+          "dev": true
3689
+        },
3690
+        "cookie": {
3691
+          "version": "0.4.0",
3692
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
3693
+          "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
3694
+          "dev": true
3695
+        },
3696
+        "finalhandler": {
3697
+          "version": "1.1.2",
3698
+          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
3699
+          "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
3700
+          "dev": true,
3701
+          "requires": {
3702
+            "debug": "2.6.9",
3703
+            "encodeurl": "~1.0.2",
3704
+            "escape-html": "~1.0.3",
3705
+            "on-finished": "~2.3.0",
3706
+            "parseurl": "~1.3.3",
3707
+            "statuses": "~1.5.0",
3708
+            "unpipe": "~1.0.0"
3709
+          }
3710
+        },
3711
+        "http-errors": {
3712
+          "version": "1.7.2",
3713
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
3714
+          "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
3715
+          "dev": true,
3716
+          "requires": {
3717
+            "depd": "~1.1.2",
3718
+            "inherits": "2.0.3",
3719
+            "setprototypeof": "1.1.1",
3720
+            "statuses": ">= 1.5.0 < 2",
3721
+            "toidentifier": "1.0.0"
3722
+          }
3723
+        },
3724
+        "iconv-lite": {
3725
+          "version": "0.4.24",
3726
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
3727
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
3728
+          "dev": true,
3729
+          "requires": {
3730
+            "safer-buffer": ">= 2.1.2 < 3"
3731
+          }
3732
+        },
3733
+        "negotiator": {
3734
+          "version": "0.6.2",
3735
+          "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
3736
+          "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
3737
+          "dev": true
3738
+        },
3739
+        "parseurl": {
3740
+          "version": "1.3.3",
3741
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
3742
+          "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
3743
+          "dev": true
3744
+        },
3745
+        "qs": {
3746
+          "version": "6.7.0",
3747
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
3748
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
3749
+          "dev": true
3750
+        },
3751
+        "range-parser": {
3752
+          "version": "1.2.1",
3753
+          "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
3754
+          "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
3755
+          "dev": true
3756
+        },
3757
+        "raw-body": {
3758
+          "version": "2.4.0",
3759
+          "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
3760
+          "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
3761
+          "dev": true,
3762
+          "requires": {
3763
+            "bytes": "3.1.0",
3764
+            "http-errors": "1.7.2",
3765
+            "iconv-lite": "0.4.24",
3766
+            "unpipe": "1.0.0"
3767
+          }
3768
+        },
3769
+        "safe-buffer": {
3770
+          "version": "5.1.2",
3771
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3772
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3773
+          "dev": true
3774
+        },
3775
+        "setprototypeof": {
3776
+          "version": "1.1.1",
3777
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
3778
+          "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
3779
+          "dev": true
3780
+        },
3781
+        "type-is": {
3782
+          "version": "1.6.18",
3783
+          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
3784
+          "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
3785
+          "dev": true,
3786
+          "requires": {
3787
+            "media-typer": "0.3.0",
3788
+            "mime-types": "~2.1.24"
3789
+          }
3790
+        }
3791
+      }
3792
+    },
3527 3793
     "extend": {
3528 3794
       "version": "3.0.1",
3529 3795
       "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
@@ -3682,6 +3948,12 @@
3682 3948
         "object-assign": "^4.0.1"
3683 3949
       }
3684 3950
     },
3951
+    "filesize": {
3952
+      "version": "3.6.1",
3953
+      "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
3954
+      "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
3955
+      "dev": true
3956
+    },
3685 3957
     "fill-range": {
3686 3958
       "version": "4.0.0",
3687 3959
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -3802,6 +4074,12 @@
3802 4074
       "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
3803 4075
       "dev": true
3804 4076
     },
4077
+    "forwarded": {
4078
+      "version": "0.1.2",
4079
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
4080
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
4081
+      "dev": true
4082
+    },
3805 4083
     "fragment-cache": {
3806 4084
       "version": "0.2.1",
3807 4085
       "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -3811,6 +4089,12 @@
3811 4089
         "map-cache": "^0.2.2"
3812 4090
       }
3813 4091
     },
4092
+    "fresh": {
4093
+      "version": "0.5.2",
4094
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
4095
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
4096
+      "dev": true
4097
+    },
3814 4098
     "from2": {
3815 4099
       "version": "2.3.0",
3816 4100
       "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -4507,6 +4791,24 @@
4507 4791
       "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
4508 4792
       "dev": true
4509 4793
     },
4794
+    "gzip-size": {
4795
+      "version": "5.1.1",
4796
+      "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
4797
+      "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
4798
+      "dev": true,
4799
+      "requires": {
4800
+        "duplexer": "^0.1.1",
4801
+        "pify": "^4.0.1"
4802
+      },
4803
+      "dependencies": {
4804
+        "pify": {
4805
+          "version": "4.0.1",
4806
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
4807
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
4808
+          "dev": true
4809
+        }
4810
+      }
4811
+    },
4510 4812
     "has": {
4511 4813
       "version": "1.0.1",
4512 4814
       "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
@@ -4651,6 +4953,12 @@
4651 4953
         "minimalistic-crypto-utils": "^1.0.1"
4652 4954
       }
4653 4955
     },
4956
+    "hoopy": {
4957
+      "version": "0.1.4",
4958
+      "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
4959
+      "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
4960
+      "dev": true
4961
+    },
4654 4962
     "hosted-git-info": {
4655 4963
       "version": "2.5.0",
4656 4964
       "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
@@ -4930,6 +5238,12 @@
4930 5238
       "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
4931 5239
       "dev": true
4932 5240
     },
5241
+    "ipaddr.js": {
5242
+      "version": "1.9.0",
5243
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
5244
+      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
5245
+      "dev": true
5246
+    },
4933 5247
     "is-accessor-descriptor": {
4934 5248
       "version": "0.1.6",
4935 5249
       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
@@ -6217,7 +6531,7 @@
6217 6531
     },
6218 6532
     "karma-webpack": {
6219 6533
       "version": "3.0.0",
6220
-      "resolved": "http://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.0.tgz",
6534
+      "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.0.tgz",
6221 6535
       "integrity": "sha512-Ja1o9LLoqWaJyUNhTKaXjWiEH9y7a9H3mzP8pYB30SBsgoF5KBS/65NeHFd+QPuT9ITrym8xFt8BZeGbcOfujA==",
6222 6536
       "dev": true,
6223 6537
       "requires": {
@@ -6540,6 +6854,18 @@
6540 6854
         "readable-stream": "^2.0.1"
6541 6855
       }
6542 6856
     },
6857
+    "merge-descriptors": {
6858
+      "version": "1.0.1",
6859
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
6860
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
6861
+      "dev": true
6862
+    },
6863
+    "methods": {
6864
+      "version": "1.1.2",
6865
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
6866
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
6867
+      "dev": true
6868
+    },
6543 6869
     "micromatch": {
6544 6870
       "version": "3.1.10",
6545 6871
       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -6591,6 +6917,21 @@
6591 6917
       "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
6592 6918
       "dev": true
6593 6919
     },
6920
+    "mime-db": {
6921
+      "version": "1.40.0",
6922
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
6923
+      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
6924
+      "dev": true
6925
+    },
6926
+    "mime-types": {
6927
+      "version": "2.1.24",
6928
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
6929
+      "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
6930
+      "dev": true,
6931
+      "requires": {
6932
+        "mime-db": "1.40.0"
6933
+      }
6934
+    },
6594 6935
     "mimic-fn": {
6595 6936
       "version": "1.1.0",
6596 6937
       "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
@@ -6963,6 +7304,12 @@
6963 7304
         "mimic-fn": "^1.0.0"
6964 7305
       }
6965 7306
     },
7307
+    "opener": {
7308
+      "version": "1.5.1",
7309
+      "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz",
7310
+      "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
7311
+      "dev": true
7312
+    },
6966 7313
     "optimist": {
6967 7314
       "version": "0.6.1",
6968 7315
       "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
@@ -7171,6 +7518,12 @@
7171 7518
       "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
7172 7519
       "dev": true
7173 7520
     },
7521
+    "path-to-regexp": {
7522
+      "version": "0.1.7",
7523
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
7524
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
7525
+      "dev": true
7526
+    },
7174 7527
     "path-type": {
7175 7528
       "version": "2.0.0",
7176 7529
       "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@@ -7289,6 +7642,16 @@
7289 7642
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
7290 7643
       "dev": true
7291 7644
     },
7645
+    "proxy-addr": {
7646
+      "version": "2.0.5",
7647
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
7648
+      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
7649
+      "dev": true,
7650
+      "requires": {
7651
+        "forwarded": "~0.1.2",
7652
+        "ipaddr.js": "1.9.0"
7653
+      }
7654
+    },
7292 7655
     "prr": {
7293 7656
       "version": "1.0.1",
7294 7657
       "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -7735,12 +8098,98 @@
7735 8098
       "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
7736 8099
       "dev": true
7737 8100
     },
8101
+    "send": {
8102
+      "version": "0.17.1",
8103
+      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
8104
+      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
8105
+      "dev": true,
8106
+      "requires": {
8107
+        "debug": "2.6.9",
8108
+        "depd": "~1.1.2",
8109
+        "destroy": "~1.0.4",
8110
+        "encodeurl": "~1.0.2",
8111
+        "escape-html": "~1.0.3",
8112
+        "etag": "~1.8.1",
8113
+        "fresh": "0.5.2",
8114
+        "http-errors": "~1.7.2",
8115
+        "mime": "1.6.0",
8116
+        "ms": "2.1.1",
8117
+        "on-finished": "~2.3.0",
8118
+        "range-parser": "~1.2.1",
8119
+        "statuses": "~1.5.0"
8120
+      },
8121
+      "dependencies": {
8122
+        "http-errors": {
8123
+          "version": "1.7.3",
8124
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
8125
+          "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
8126
+          "dev": true,
8127
+          "requires": {
8128
+            "depd": "~1.1.2",
8129
+            "inherits": "2.0.4",
8130
+            "setprototypeof": "1.1.1",
8131
+            "statuses": ">= 1.5.0 < 2",
8132
+            "toidentifier": "1.0.0"
8133
+          }
8134
+        },
8135
+        "inherits": {
8136
+          "version": "2.0.4",
8137
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
8138
+          "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
8139
+          "dev": true
8140
+        },
8141
+        "mime": {
8142
+          "version": "1.6.0",
8143
+          "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
8144
+          "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
8145
+          "dev": true
8146
+        },
8147
+        "ms": {
8148
+          "version": "2.1.1",
8149
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
8150
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
8151
+          "dev": true
8152
+        },
8153
+        "range-parser": {
8154
+          "version": "1.2.1",
8155
+          "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
8156
+          "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
8157
+          "dev": true
8158
+        },
8159
+        "setprototypeof": {
8160
+          "version": "1.1.1",
8161
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
8162
+          "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
8163
+          "dev": true
8164
+        }
8165
+      }
8166
+    },
7738 8167
     "serialize-javascript": {
7739 8168
       "version": "1.4.0",
7740 8169
       "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz",
7741 8170
       "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=",
7742 8171
       "dev": true
7743 8172
     },
8173
+    "serve-static": {
8174
+      "version": "1.14.1",
8175
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
8176
+      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
8177
+      "dev": true,
8178
+      "requires": {
8179
+        "encodeurl": "~1.0.2",
8180
+        "escape-html": "~1.0.3",
8181
+        "parseurl": "~1.3.3",
8182
+        "send": "0.17.1"
8183
+      },
8184
+      "dependencies": {
8185
+        "parseurl": {
8186
+          "version": "1.3.3",
8187
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
8188
+          "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
8189
+          "dev": true
8190
+        }
8191
+      }
8192
+    },
7744 8193
     "set-blocking": {
7745 8194
       "version": "2.0.0",
7746 8195
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
@@ -8702,12 +9151,24 @@
8702 9151
         }
8703 9152
       }
8704 9153
     },
9154
+    "toidentifier": {
9155
+      "version": "1.0.0",
9156
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
9157
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
9158
+      "dev": true
9159
+    },
8705 9160
     "trim-right": {
8706 9161
       "version": "1.0.1",
8707 9162
       "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
8708 9163
       "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
8709 9164
       "dev": true
8710 9165
     },
9166
+    "tryer": {
9167
+      "version": "1.0.1",
9168
+      "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
9169
+      "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
9170
+      "dev": true
9171
+    },
8711 9172
     "tslib": {
8712 9173
       "version": "1.9.3",
8713 9174
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -9023,6 +9484,12 @@
9023 9484
         "spdx-expression-parse": "~1.0.0"
9024 9485
       }
9025 9486
     },
9487
+    "vary": {
9488
+      "version": "1.1.2",
9489
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
9490
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
9491
+      "dev": true
9492
+    },
9026 9493
     "vm-browserify": {
9027 9494
       "version": "0.0.4",
9028 9495
       "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
@@ -9129,6 +9596,85 @@
9129 9596
         }
9130 9597
       }
9131 9598
     },
9599
+    "webpack-bundle-analyzer": {
9600
+      "version": "3.4.1",
9601
+      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.4.1.tgz",
9602
+      "integrity": "sha512-Bs8D/1zF+17lhqj2OYmzi7HEVYqEVxu7lCO9Ff8BwajenOU0vAwEoV8e4ICCPNZAcqR1PCR/7o2SkW+cnCmF0A==",
9603
+      "dev": true,
9604
+      "requires": {
9605
+        "acorn": "^6.0.7",
9606
+        "acorn-walk": "^6.1.1",
9607
+        "bfj": "^6.1.1",
9608
+        "chalk": "^2.4.1",
9609
+        "commander": "^2.18.0",
9610
+        "ejs": "^2.6.1",
9611
+        "express": "^4.16.3",
9612
+        "filesize": "^3.6.1",
9613
+        "gzip-size": "^5.0.0",
9614
+        "lodash": "^4.17.15",
9615
+        "mkdirp": "^0.5.1",
9616
+        "opener": "^1.5.1",
9617
+        "ws": "^6.0.0"
9618
+      },
9619
+      "dependencies": {
9620
+        "acorn": {
9621
+          "version": "6.3.0",
9622
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
9623
+          "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
9624
+          "dev": true
9625
+        },
9626
+        "ansi-styles": {
9627
+          "version": "3.2.1",
9628
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
9629
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
9630
+          "dev": true,
9631
+          "requires": {
9632
+            "color-convert": "^1.9.0"
9633
+          }
9634
+        },
9635
+        "chalk": {
9636
+          "version": "2.4.2",
9637
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
9638
+          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
9639
+          "dev": true,
9640
+          "requires": {
9641
+            "ansi-styles": "^3.2.1",
9642
+            "escape-string-regexp": "^1.0.5",
9643
+            "supports-color": "^5.3.0"
9644
+          }
9645
+        },
9646
+        "has-flag": {
9647
+          "version": "3.0.0",
9648
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
9649
+          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
9650
+          "dev": true
9651
+        },
9652
+        "lodash": {
9653
+          "version": "4.17.15",
9654
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
9655
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
9656
+          "dev": true
9657
+        },
9658
+        "supports-color": {
9659
+          "version": "5.5.0",
9660
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
9661
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
9662
+          "dev": true,
9663
+          "requires": {
9664
+            "has-flag": "^3.0.0"
9665
+          }
9666
+        },
9667
+        "ws": {
9668
+          "version": "6.2.1",
9669
+          "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
9670
+          "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
9671
+          "dev": true,
9672
+          "requires": {
9673
+            "async-limiter": "~1.0.0"
9674
+          }
9675
+        }
9676
+      }
9677
+    },
9132 9678
     "webpack-cli": {
9133 9679
       "version": "3.1.2",
9134 9680
       "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz",

+ 1
- 0
package.json 파일 보기

@@ -51,6 +51,7 @@
51 51
     "precommit-hook": "3.0.0",
52 52
     "string-replace-loader": "2.1.1",
53 53
     "webpack": "4.26.1",
54
+    "webpack-bundle-analyzer": "3.4.1",
54 55
     "webpack-cli": "3.1.2"
55 56
   },
56 57
   "scripts": {

+ 11
- 1
webpack.config.js 파일 보기

@@ -1,6 +1,9 @@
1 1
 /* global __dirname */
2 2
 
3 3
 const process = require('process');
4
+const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
5
+
6
+const analyzeBundle = process.argv.indexOf('--analyze-bundle') !== -1;
4 7
 
5 8
 const minimize
6 9
     = process.argv.indexOf('-p') !== -1
@@ -65,7 +68,14 @@ const config = {
65 68
     performance: {
66 69
         maxAssetSize: 750000,
67 70
         maxEntrypointSize: 750000
68
-    }
71
+    },
72
+    plugins: [
73
+        analyzeBundle
74
+            && new BundleAnalyzerPlugin({
75
+                analyzerMode: 'disabled',
76
+                generateStatsFile: true
77
+            })
78
+    ].filter(Boolean)
69 79
 };
70 80
 
71 81
 module.exports = [

Loading…
취소
저장