最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to reduce vendorscript bundle.js in Angular 5 - Stack Overflow

programmeradmin5浏览0评论

I have already used ng build -prod -aot -vc -cc -dop --buildOptimize to reduce the size of the builded app. Now this is my situation:

Is it possible to reduce (or maybe split) these bigger chunks? Is there something that can help me to inspect inside these modules?

P.s. I have already used webpack-analyzer to inspect the situation but it can't go deep into these files.

I have already used ng build -prod -aot -vc -cc -dop --buildOptimize to reduce the size of the builded app. Now this is my situation:

Is it possible to reduce (or maybe split) these bigger chunks? Is there something that can help me to inspect inside these modules?

P.s. I have already used webpack-analyzer to inspect the situation but it can't go deep into these files.

Share Improve this question edited Aug 3, 2021 at 13:31 Guerric P 31.9k6 gold badges58 silver badges106 bronze badges asked Jun 1, 2018 at 10:50 Alessandro CeleghinAlessandro Celeghin 4,20915 gold badges55 silver badges97 bronze badges 1
  • 3 angular.io/guide/deployment#inspect-the-bundles – JB Nizet Commented Jun 1, 2018 at 10:54
Add a ment  | 

3 Answers 3

Reset to default 5

Build your app with sourcemaps, then use a tool like source-map-explorer that details the size of every part of library that you're using.

Some tips with mon libraries :

  • If you're using RxJS 5.5 or higher, use the .pipe(operator1(), operator2()) syntax, it significantly reduces RxJS size when you don't use many different operators
  • If you're using moment.js be sure to import only the locales you're using
  • If you're using Angular Material, be sure you don't import unused modules
  • If you're using bootstrap and SASS, import only the needed parts of .scss files

If you didn't already do it, divide your app into lazy modules, it will reduce the size of the initial chunk.

I had a similar issue with large prod bundles and fixed the issue with this mand;

npm run build

I had been using

npm run ng build --prod

but the --prod flag doesn't execute and I was left with a vendor.bundle.js which was 2.9mbs

chunk {inline} inline.bundle.js, inline.bundle.js.map (inline) 3.89 kB [entry] [rendered]
chunk {main} main.bundle.js, main.bundle.js.map (main) 122 kB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 349 kB [initial] [rendered]
chunk {styles} styles.bundle.js, styles.bundle.js.map (styles) 16.6 kB [initial] [rendered]
chunk {vendor} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.96 MB [initial] [rendered]

With just npm run build (no ng) the whole dist folder is 400kb

chunk {0} polyfills.67d5a7eec41ba0d20dc4.bundle.js (polyfills) 101 kB [initial] [rendered]
chunk {1} main.3874ea54d23e70290fa8.bundle.js (main) 327 kB [initial] [rendered]
chunk {2} styles.0aad5eda327b47b9e9fa.bundle.css (styles) 1.56 kB [initial] [rendered]
chunk {3} inline.318b50c57b4eba3d437b.bundle.js (inline) 796 bytes [entry] [rendered]

Sorry For Late Reply. This answer will work for all newer versions of Angular.

  1. If you are using Angular Material, Then import from the specific package exporter.

Ex:

import {MatButtonModule} from '@angular/material/button';

istead of

import {MatButtonModule} from '@angular/material';
  1. Avoid using Common Material Module throughout your application.

If you are using LazyLoading module, Import required packages in the specific module.

I followed these steps, I got reduced bundle size from 9.0MB to 1.45MB.

Hope it will work for you guys also :).

发布评论

评论列表(0)

  1. 暂无评论