How to ensure seamless usability on the front-end when deploying an SPA? The 2019 Stack Overflow Developer Survey Results Are InIs it possible to have `publicPath` configured dynamically in the browser with webpack?How to load chunk files made by Webpack during runtime?Vue-cil distributed app deploy error on digital ocean - TypeError: t is not a functionVue Webpack Build Breaks Bulma CSSAngular4 micro front-endshow to include a vuejs app build with npm and webpack in an existing website with a simple 'a' tag?Can webpack-dev-server watch for changes and write on filesystem for iisexpress?Hide or obfuscate real path name of webpack chunk filesHandle missing dynamic chunks after new deployment with WebpackApplying changes for vue application executed by GO

Are there any other methods to apply to solving simultaneous equations?

What is the meaning of Triage in Cybersec world?

How to deal with fear of taking dependencies

Is an up-to-date browser secure on an out-of-date OS?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?

What is the closest word meaning "respect for time / mindful"

Why didn't the Event Horizon Telescope team mention Sagittarius A*?

Protecting Dualbooting Windows from dangerous code (like rm -rf)

Feature engineering suggestion required

Pokemon Turn Based battle (Python)

Is "plugging out" electronic devices an American expression?

Can we generate random numbers using irrational numbers like π and e?

How to save as into a customized destination on macOS?

Why isn't the circumferential light around the M87 black hole's event horizon symmetric?

Can someone be penalized for an "unlawful" act if no penalty is specified?

What do the Banks children have against barley water?

Is bread bad for ducks?

Reference request: Oldest number theory books with (unsolved) exercises?

Have you ever entered Singapore using a different passport or name?

Falsification in Math vs Science

Which Sci-Fi work first showed weapon of galactic-scale mass destruction?

Delete all lines which don't have n characters before delimiter

Can one be advised by a professor who is very far away?



How to ensure seamless usability on the front-end when deploying an SPA?



The 2019 Stack Overflow Developer Survey Results Are InIs it possible to have `publicPath` configured dynamically in the browser with webpack?How to load chunk files made by Webpack during runtime?Vue-cil distributed app deploy error on digital ocean - TypeError: t is not a functionVue Webpack Build Breaks Bulma CSSAngular4 micro front-endshow to include a vuejs app build with npm and webpack in an existing website with a simple 'a' tag?Can webpack-dev-server watch for changes and write on filesystem for iisexpress?Hide or obfuscate real path name of webpack chunk filesHandle missing dynamic chunks after new deployment with WebpackApplying changes for vue application executed by GO



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








4















I expect this applies to any web framework using webpack that builds assets / chunks, in my case it's Vue.



My workflow is:



  1. Develop a feature

  2. Build (npm run build)

  3. Deploy (eb deploy)

  4. Back to 1.

Building removes all previous chunks as adds new ones i.e.



my-module.1X3DF23.js

my-other-module.9DFdw232.js



If a user was on the front end at this same time without refreshing the page (SPA, so unlikely) and browses to a new view that depends on a chunk that's been wiped, they get a 404 for those missing old assets.



Until this point, I have been incrementing a version number along with any XHR requests from the server. If the app notices a change, it will reload itself. But if 404 errors are coming up from chunks, no XHR requests will be called anyway.



Initial thoughts:



  1. Have the web app ping the back-end with an interval of say 30 seconds, this would trigger the version refreshing automatically.

Any alternatives?










share|improve this question






























    4















    I expect this applies to any web framework using webpack that builds assets / chunks, in my case it's Vue.



    My workflow is:



    1. Develop a feature

    2. Build (npm run build)

    3. Deploy (eb deploy)

    4. Back to 1.

    Building removes all previous chunks as adds new ones i.e.



    my-module.1X3DF23.js

    my-other-module.9DFdw232.js



    If a user was on the front end at this same time without refreshing the page (SPA, so unlikely) and browses to a new view that depends on a chunk that's been wiped, they get a 404 for those missing old assets.



    Until this point, I have been incrementing a version number along with any XHR requests from the server. If the app notices a change, it will reload itself. But if 404 errors are coming up from chunks, no XHR requests will be called anyway.



    Initial thoughts:



    1. Have the web app ping the back-end with an interval of say 30 seconds, this would trigger the version refreshing automatically.

    Any alternatives?










    share|improve this question


























      4












      4








      4








      I expect this applies to any web framework using webpack that builds assets / chunks, in my case it's Vue.



      My workflow is:



      1. Develop a feature

      2. Build (npm run build)

      3. Deploy (eb deploy)

      4. Back to 1.

      Building removes all previous chunks as adds new ones i.e.



      my-module.1X3DF23.js

      my-other-module.9DFdw232.js



      If a user was on the front end at this same time without refreshing the page (SPA, so unlikely) and browses to a new view that depends on a chunk that's been wiped, they get a 404 for those missing old assets.



      Until this point, I have been incrementing a version number along with any XHR requests from the server. If the app notices a change, it will reload itself. But if 404 errors are coming up from chunks, no XHR requests will be called anyway.



      Initial thoughts:



      1. Have the web app ping the back-end with an interval of say 30 seconds, this would trigger the version refreshing automatically.

      Any alternatives?










      share|improve this question
















      I expect this applies to any web framework using webpack that builds assets / chunks, in my case it's Vue.



      My workflow is:



      1. Develop a feature

      2. Build (npm run build)

      3. Deploy (eb deploy)

      4. Back to 1.

      Building removes all previous chunks as adds new ones i.e.



      my-module.1X3DF23.js

      my-other-module.9DFdw232.js



      If a user was on the front end at this same time without refreshing the page (SPA, so unlikely) and browses to a new view that depends on a chunk that's been wiped, they get a 404 for those missing old assets.



      Until this point, I have been incrementing a version number along with any XHR requests from the server. If the app notices a change, it will reload itself. But if 404 errors are coming up from chunks, no XHR requests will be called anyway.



      Initial thoughts:



      1. Have the web app ping the back-end with an interval of say 30 seconds, this would trigger the version refreshing automatically.

      Any alternatives?







      webpack continuous-integration continuous-deployment






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 12 at 13:55







      digout

















      asked Mar 7 at 16:28









      digoutdigout

      757820




      757820






















          3 Answers
          3






          active

          oldest

          votes


















          3





          +25









          I would go with not deleting previous chunks at all. I don't know how elasticbeanstalk works so I will show you my strategy with a good old ubuntu server.



          Basically, you have those folders in your Vue application:



          dist -> Contains the content of the built application with npm run build
          node_modules
          public
          src
          ...


          What I do is that I create a new folder named deploy because one problem of the dist folder is that npm run build deletes the content of the dist folder at the beginning of build.



          Having the deploy folder, you can keep all the data needed across time.



          So when I build my project, I then copy the content of the dist folder into the deploy folder without deleting previous chunks.



          In order to avoid the deploy folder to interfere with git, I add it to the .gitignore registry.



          You can do this with a simple recursive paste using bash:



          cp -R dist/* deploy/


          This will replace your index.html page into the deploy folder but will not overwrite your previous chunks.



          Problem with this solution: Your deploy folder might get huge because previous chunks would never be deleted.



          Solution for this problem: Write a robust script that deletes chunks older than 1 day (or more) when deploying the application. You can base your script on the creation date of the file. If you are fluent with bash, go with it. I personally prefer to write this kind of script with node directly in a deploy.js script at the root of my project..






          share|improve this answer


















          • 1





            Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

            – digout
            Mar 13 at 9:10


















          0














          I would suggest you doing the following



          Consider a static URL resource that you serve as follows




          abc.com/v1/module.123.js




          I would suggest you to keep the




          v1




          Part as same inbetween your build updates.



          Webpack will generate a new file name as follows




          build1: module.123.js



          build2: module.234.js




          whenever the content of module.js changes inbetween your builds.



          During your build updates make sure you are not removing your




          v1




          folder in your server. Rather doing a complete replacement you can merge the old folder and new folder. By doing this you will be having both




          module.123.js



          module.234.js




          in your v1 folder in the server. By doing this you will avoid the http 404 error in the SPA.



          You can notify the user of a build update through another process, and asking him to refresh the browser to get the changes. This notification of changes to the user can be done using a Server Sent Event



          You can change the V1 folder every 6 months or so to V2 or something else that suits your needs to clean up unused files.






          share|improve this answer






























            0














            If your application is a 100% static application, you can use AWS S3 bucket. To update you application you just need to update your repo.



            aws s3 sync --delete /source /destiny



            We have been doing this and the update is seamless as you expect.






            share|improve this answer























            • Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

              – digout
              Mar 19 at 10:01











            • Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

              – Cleriston
              Mar 20 at 3:41











            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55048591%2fhow-to-ensure-seamless-usability-on-the-front-end-when-deploying-an-spa%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3





            +25









            I would go with not deleting previous chunks at all. I don't know how elasticbeanstalk works so I will show you my strategy with a good old ubuntu server.



            Basically, you have those folders in your Vue application:



            dist -> Contains the content of the built application with npm run build
            node_modules
            public
            src
            ...


            What I do is that I create a new folder named deploy because one problem of the dist folder is that npm run build deletes the content of the dist folder at the beginning of build.



            Having the deploy folder, you can keep all the data needed across time.



            So when I build my project, I then copy the content of the dist folder into the deploy folder without deleting previous chunks.



            In order to avoid the deploy folder to interfere with git, I add it to the .gitignore registry.



            You can do this with a simple recursive paste using bash:



            cp -R dist/* deploy/


            This will replace your index.html page into the deploy folder but will not overwrite your previous chunks.



            Problem with this solution: Your deploy folder might get huge because previous chunks would never be deleted.



            Solution for this problem: Write a robust script that deletes chunks older than 1 day (or more) when deploying the application. You can base your script on the creation date of the file. If you are fluent with bash, go with it. I personally prefer to write this kind of script with node directly in a deploy.js script at the root of my project..






            share|improve this answer


















            • 1





              Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

              – digout
              Mar 13 at 9:10















            3





            +25









            I would go with not deleting previous chunks at all. I don't know how elasticbeanstalk works so I will show you my strategy with a good old ubuntu server.



            Basically, you have those folders in your Vue application:



            dist -> Contains the content of the built application with npm run build
            node_modules
            public
            src
            ...


            What I do is that I create a new folder named deploy because one problem of the dist folder is that npm run build deletes the content of the dist folder at the beginning of build.



            Having the deploy folder, you can keep all the data needed across time.



            So when I build my project, I then copy the content of the dist folder into the deploy folder without deleting previous chunks.



            In order to avoid the deploy folder to interfere with git, I add it to the .gitignore registry.



            You can do this with a simple recursive paste using bash:



            cp -R dist/* deploy/


            This will replace your index.html page into the deploy folder but will not overwrite your previous chunks.



            Problem with this solution: Your deploy folder might get huge because previous chunks would never be deleted.



            Solution for this problem: Write a robust script that deletes chunks older than 1 day (or more) when deploying the application. You can base your script on the creation date of the file. If you are fluent with bash, go with it. I personally prefer to write this kind of script with node directly in a deploy.js script at the root of my project..






            share|improve this answer


















            • 1





              Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

              – digout
              Mar 13 at 9:10













            3





            +25







            3





            +25



            3




            +25





            I would go with not deleting previous chunks at all. I don't know how elasticbeanstalk works so I will show you my strategy with a good old ubuntu server.



            Basically, you have those folders in your Vue application:



            dist -> Contains the content of the built application with npm run build
            node_modules
            public
            src
            ...


            What I do is that I create a new folder named deploy because one problem of the dist folder is that npm run build deletes the content of the dist folder at the beginning of build.



            Having the deploy folder, you can keep all the data needed across time.



            So when I build my project, I then copy the content of the dist folder into the deploy folder without deleting previous chunks.



            In order to avoid the deploy folder to interfere with git, I add it to the .gitignore registry.



            You can do this with a simple recursive paste using bash:



            cp -R dist/* deploy/


            This will replace your index.html page into the deploy folder but will not overwrite your previous chunks.



            Problem with this solution: Your deploy folder might get huge because previous chunks would never be deleted.



            Solution for this problem: Write a robust script that deletes chunks older than 1 day (or more) when deploying the application. You can base your script on the creation date of the file. If you are fluent with bash, go with it. I personally prefer to write this kind of script with node directly in a deploy.js script at the root of my project..






            share|improve this answer













            I would go with not deleting previous chunks at all. I don't know how elasticbeanstalk works so I will show you my strategy with a good old ubuntu server.



            Basically, you have those folders in your Vue application:



            dist -> Contains the content of the built application with npm run build
            node_modules
            public
            src
            ...


            What I do is that I create a new folder named deploy because one problem of the dist folder is that npm run build deletes the content of the dist folder at the beginning of build.



            Having the deploy folder, you can keep all the data needed across time.



            So when I build my project, I then copy the content of the dist folder into the deploy folder without deleting previous chunks.



            In order to avoid the deploy folder to interfere with git, I add it to the .gitignore registry.



            You can do this with a simple recursive paste using bash:



            cp -R dist/* deploy/


            This will replace your index.html page into the deploy folder but will not overwrite your previous chunks.



            Problem with this solution: Your deploy folder might get huge because previous chunks would never be deleted.



            Solution for this problem: Write a robust script that deletes chunks older than 1 day (or more) when deploying the application. You can base your script on the creation date of the file. If you are fluent with bash, go with it. I personally prefer to write this kind of script with node directly in a deploy.js script at the root of my project..







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 12 at 11:11









            HammerbotHammerbot

            7,00532457




            7,00532457







            • 1





              Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

              – digout
              Mar 13 at 9:10












            • 1





              Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

              – digout
              Mar 13 at 9:10







            1




            1





            Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

            – digout
            Mar 13 at 9:10





            Viable solution. I could setup up an .ebextensions script that could keep the latest 5 sets of chunks. Will wait a couple more days in case someone else chimes in but you're a strong contender for the 50 coins o' gold.

            – digout
            Mar 13 at 9:10













            0














            I would suggest you doing the following



            Consider a static URL resource that you serve as follows




            abc.com/v1/module.123.js




            I would suggest you to keep the




            v1




            Part as same inbetween your build updates.



            Webpack will generate a new file name as follows




            build1: module.123.js



            build2: module.234.js




            whenever the content of module.js changes inbetween your builds.



            During your build updates make sure you are not removing your




            v1




            folder in your server. Rather doing a complete replacement you can merge the old folder and new folder. By doing this you will be having both




            module.123.js



            module.234.js




            in your v1 folder in the server. By doing this you will avoid the http 404 error in the SPA.



            You can notify the user of a build update through another process, and asking him to refresh the browser to get the changes. This notification of changes to the user can be done using a Server Sent Event



            You can change the V1 folder every 6 months or so to V2 or something else that suits your needs to clean up unused files.






            share|improve this answer



























              0














              I would suggest you doing the following



              Consider a static URL resource that you serve as follows




              abc.com/v1/module.123.js




              I would suggest you to keep the




              v1




              Part as same inbetween your build updates.



              Webpack will generate a new file name as follows




              build1: module.123.js



              build2: module.234.js




              whenever the content of module.js changes inbetween your builds.



              During your build updates make sure you are not removing your




              v1




              folder in your server. Rather doing a complete replacement you can merge the old folder and new folder. By doing this you will be having both




              module.123.js



              module.234.js




              in your v1 folder in the server. By doing this you will avoid the http 404 error in the SPA.



              You can notify the user of a build update through another process, and asking him to refresh the browser to get the changes. This notification of changes to the user can be done using a Server Sent Event



              You can change the V1 folder every 6 months or so to V2 or something else that suits your needs to clean up unused files.






              share|improve this answer

























                0












                0








                0







                I would suggest you doing the following



                Consider a static URL resource that you serve as follows




                abc.com/v1/module.123.js




                I would suggest you to keep the




                v1




                Part as same inbetween your build updates.



                Webpack will generate a new file name as follows




                build1: module.123.js



                build2: module.234.js




                whenever the content of module.js changes inbetween your builds.



                During your build updates make sure you are not removing your




                v1




                folder in your server. Rather doing a complete replacement you can merge the old folder and new folder. By doing this you will be having both




                module.123.js



                module.234.js




                in your v1 folder in the server. By doing this you will avoid the http 404 error in the SPA.



                You can notify the user of a build update through another process, and asking him to refresh the browser to get the changes. This notification of changes to the user can be done using a Server Sent Event



                You can change the V1 folder every 6 months or so to V2 or something else that suits your needs to clean up unused files.






                share|improve this answer













                I would suggest you doing the following



                Consider a static URL resource that you serve as follows




                abc.com/v1/module.123.js




                I would suggest you to keep the




                v1




                Part as same inbetween your build updates.



                Webpack will generate a new file name as follows




                build1: module.123.js



                build2: module.234.js




                whenever the content of module.js changes inbetween your builds.



                During your build updates make sure you are not removing your




                v1




                folder in your server. Rather doing a complete replacement you can merge the old folder and new folder. By doing this you will be having both




                module.123.js



                module.234.js




                in your v1 folder in the server. By doing this you will avoid the http 404 error in the SPA.



                You can notify the user of a build update through another process, and asking him to refresh the browser to get the changes. This notification of changes to the user can be done using a Server Sent Event



                You can change the V1 folder every 6 months or so to V2 or something else that suits your needs to clean up unused files.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 18 at 14:15









                John PeterJohn Peter

                331110




                331110





















                    0














                    If your application is a 100% static application, you can use AWS S3 bucket. To update you application you just need to update your repo.



                    aws s3 sync --delete /source /destiny



                    We have been doing this and the update is seamless as you expect.






                    share|improve this answer























                    • Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                      – digout
                      Mar 19 at 10:01











                    • Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                      – Cleriston
                      Mar 20 at 3:41















                    0














                    If your application is a 100% static application, you can use AWS S3 bucket. To update you application you just need to update your repo.



                    aws s3 sync --delete /source /destiny



                    We have been doing this and the update is seamless as you expect.






                    share|improve this answer























                    • Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                      – digout
                      Mar 19 at 10:01











                    • Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                      – Cleriston
                      Mar 20 at 3:41













                    0












                    0








                    0







                    If your application is a 100% static application, you can use AWS S3 bucket. To update you application you just need to update your repo.



                    aws s3 sync --delete /source /destiny



                    We have been doing this and the update is seamless as you expect.






                    share|improve this answer













                    If your application is a 100% static application, you can use AWS S3 bucket. To update you application you just need to update your repo.



                    aws s3 sync --delete /source /destiny



                    We have been doing this and the update is seamless as you expect.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Mar 19 at 6:09









                    CleristonCleriston

                    382211




                    382211












                    • Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                      – digout
                      Mar 19 at 10:01











                    • Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                      – Cleriston
                      Mar 20 at 3:41

















                    • Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                      – digout
                      Mar 19 at 10:01











                    • Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                      – Cleriston
                      Mar 20 at 3:41
















                    Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                    – digout
                    Mar 19 at 10:01





                    Not sure you understand the requirement. It's about dealing with a view that a user might have loaded which references chunks that get overwritten on deploy. If they haven't reloaded their page, old routes to chunks will be queried and 404 will be returned.

                    – digout
                    Mar 19 at 10:01













                    Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                    – Cleriston
                    Mar 20 at 3:41





                    Not quite... If you have configured your chunks to have the hash in their names, the browser will not pull the new files unless this hash code has been changed/updated. If you use cloudFront they also have their internal cache in which you can use in your favour.

                    – Cleriston
                    Mar 20 at 3:41

















                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55048591%2fhow-to-ensure-seamless-usability-on-the-front-end-when-deploying-an-spa%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

                    Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

                    Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved