Signup for the Ionic Newsletter to get the latest news and updates!

  • http://www.raymondcamdencom/ Raymond Camden

    Any plans on updating the CLI generator so I can make a page w/ this support built in? Maybe as a new template, lazypage.

  • jesusbotella

    How are you managing the common components/imports of every module? Are they splitted to a new common file?

    I am worried about loading the same code multiple times 🙁

    • Mike Hartington

      This is something I plan on addressing in a future post. We’re proposing a few different strategies, either one by one, or doing some mass import. I’ll go into further detail on this next week.

      • jesusbotella

        Oh, awesome, thank you. 🙂 I was just asking to know how you were doing it. I didn’t noticed that it was “part 1”.

      • Antonio Gallo

        lets wait for “part 2” then

    • Simon Reimler

      I postet a little guide on this recently, it’s of course just one strategy for loading Pipes & Components:

  • Brock Ellis

    As a maintainer of a large-ish app, I am sooooo excited about lazy loading. Increasing start up will be huge for user satisfaction. Can’t wait for this to mature and stabilize. Great work, team!

  • Ankush Aggarwal

    I recently added lazy loading in my weather app – It’s not really difficult, actually simplifies the app. Refer to source code to see how to lazy load components, directives, how to use providers, animations.

  • Antonio Gallo

    Finally! I had this problems with app with 50+ pages loading very slow since last summer. I will try it asap.

    • Simon Reimler

      If you have followed the standard naming scheme you can give my upgrade script a try which will automatically create the module files and add some stuff. But always backup / source control your code first! Check it out at the bottom here:

      • Antonio Gallo

        ah thanks but actually i don’t want to implement a module for every page! We are already in production and don’t want to redo all the tests. Probably will use this feature onto the next project if still using Ionic.

        • Rako Nda ᵀᴴᴱ ᴼᴿᴵᴳᴵᴻᴬᴸ

          ” i don’t want to implement a module for every page! We are already in production “, this line is my nightmare when it comes to script improvement.

      • Khm

        How about adding a feature where we can exclude a specific page from the automated lazy loading process ? 🙂

  • Roberto Luiz Debarba

    I was waiting for this!
    I build big enterprise applications with dozens of pages and performance was a problem. We cosidered change to another framework to speed up our apps, but it can change our feature.


  • Mashama McFarlane

    Very excited about this feature. Any chance you can update the Ionic Conference App to showcase Lazying Loading and Deep Linking features post version 2.x? I already tried integrate these new features into my app but encounter a road block seemingly related to

    Nevertheless Ionic rocks … thank you guys/gals for doing what you do. Keep doing it!

  • Roshan Dhabekar

    Great deal mAn

  • Niels

    Awesome! +1 for the Ionic Team!

  • James West

    Thank you for this implementation, much appreciated.
    Is there any scope to adding custom components to also be lazy loaded???

  • Dorayit

    Just I upgrade ionic and cordova today!
    I found lazy loading cannot working because of “Cannot find module ‘../pages/home/home.module’.”, BUT im sure this file is exists.

    • Jianming GUO

      I got the exactly same issue as yours, what’s going on here? Even I tried the provided lazyLoadTabs github repo, after ionic serve, the browser shows the same error.

    • Jianming GUO

      I think I solved it. I was using the cnpm rather than npm because network speed issue, and I just proved cnpm was broken, probably due to the fast paced updates on angular, ionic etc. recently . Just deleted the entire node_modules folder, and run npm install again, everything just works.

  • Romain Fallet


    I’ve just tried it out, it works !

    My question now is : how do you unit test lazy load pages ?

    I’m stuck with a fresh new blank project that only has the implementation you describe here.
    I set up a unit testing following your guide, but I have this error in the jasmine console :

    zone.js:630 Unhandled Promise rejection: invalid link: HomePage ; Zone: angular ; Task: Promise.then ; Value: invalid link: HomePage

    Any idea on how to make lazy load available in unit tests ?


  • Naveed Ahmed

    @mhartington:disqus Would you please have look at and share you opinion?

  • 卞中杰

    I’m afraid the example app ( doesn’t work. I tried to ionic serve on the browser and it says Cannot find module ‘../pages/tabs/tabs.module’. Could you take a look at that please?

  • Jan Strohhecker

    @mhartington:disqus : Great write up. Just one question, when i look at the screenshot with the file sizes, i wonder about your main.js. Its only ~600kb. How did you do that? When i create the blank ionic template, my main.js is almost 4mb!

  • Kim Wong

    The reason why ionic lazy loading is bad for large app:

  • Lloyd Williams

    Hello, I forked your tabs example but can’t get ionic serve to work, it complains about a missing gulp file. (after npm install). any ideas?

  • Xinhu Liu

    Thank you for your examples. However, I am using ion-slides. How can I lazily load each slide?

  • eongoo

    How can I force clients to refresh JavaScript files? How to add version number to 0.main.js?v=1.0.0

  • Mahmoud Rabie

    Thanks a lot for this brilliant post.

    What are steps to convert sample conference app to use Lazy Loading?


  • Gabriel Angelo

    I’m getting the error ‘ No component factory found for DetailsPage. Did you add it to @NgModule.entryComponents?’

    • Gabriel Angelo

      I was calling the push without the ‘. Like push(HomePage) instead of push(‘HomePage’).

  • Quoc Nguyen

    hi, can we lazy load using cdn. Any option to specify cdn, and query string ?

  • akash

    Does it make any difference on android/ios app in performance if we use lazy loading in modules,
    because we already have all chunks locally in device?
    I know it really makes difference on web but just wanted to know how it improved performance if we use lazy loading?

  • Pepito Perez

    Any change at one year?