Thanks. On my case, I don't use maven but I see that the majority of us, have the same problem and each one applies is own script.
Brian Raymes <brian.ray...@teotech.com> escreveu no dia sexta, 10/03/2023 à(s) 00:59: > If you use Maven, you can the maven-replacer-plugin to automate the > version/timestamp/build/etc for every build. One could also filter out > things such unwanted files like .DS_Store with other plugins. > > For instance: > . . . > <timestamp>${maven.build.timestamp}</timestamp> > . . . > <build> > <plugins> > <plugin> > <groupId>com.google.code.maven-replacer-plugin</groupId> > <artifactId>replacer</artifactId> > <version>${google.replacer.version}</version> > <executions> > <execution> > <phase>prepare-package</phase> > <goals> > <goal>replace</goal> > </goals> > </execution> > </executions> > <configuration> > <ignoreMissingFile>false</ignoreMissingFile> > <file>${compiler.output-dir}/index.html</file> > <replacements> > <replacement> > <token> > <![CDATA[<script type="text/javascript" > src="./App.js"></script>]]> > </token> > <value> > <![CDATA[<script defer type="text/javascript" > src="./App.js?v=${timestamp}"></script>]]> > </value> > </replacement> > <replacement> > <token> > <![CDATA[<link rel="stylesheet" type="text/css" > href="App.min.css">]]> > </token> > <value> > <![CDATA[<link rel="stylesheet" type="text/css" > href="App.min.css?v=${timestamp}">]]> > </value> > </replacement> > </replacements> > </configuration> > </plugin> > . . . > > Brian > > -----Original Message----- > From: Hugo Ferreira <hferreira...@gmail.com> > Sent: Thursday, March 9, 2023 4:30 PM > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Clear the cache strategy > > I found this VS Code extension: > > https://marketplace.visualstudio.com/items?itemName=adrianwilczynski.terminal-commands > With this I'm writing a script, so then after build-release, right-click > on the release folder to clean files and inject the version. > > Hugo Ferreira <hferreira...@gmail.com> escreveu no dia sexta, 10/03/2023 > à(s) 00:05: > > > Thank you all. > > You all gave me greate ideas. > > Josh, no need to spend time on this. > > I will create my own script (remove the .DS files is also a good idea > > - I hate the mac pollute all my folders with that). > > > > Harbs <harbs.li...@gmail.com> escreveu no dia quinta, 9/03/2023 à(s) > > 21:56: > > > >> Yes. My script also has some "aws s3 sync", "aws s3 cp” and "aws > >> cloudfront create-invalidation” commands to upload the app after > >> updating the version info. > >> > >> The sync commands (for the whole release directory has these arguments: > >> > >> --exclude "*.DS_Store*" --delete --cache-control max-age=2592000 > >> --acl public-read > >> > >> The cp command for the index.html file has these arguments: > >> > >> --metadata-directive REPLACE --cache-control max-age=60,public > >> --content-type text/html --acl public-read > >> > >> > >> > On Mar 9, 2023, at 11:42 PM, Hugo Ferreira <hferreira...@gmail.com> > >> wrote: > >> > > >> > Thank you. > >> > > >> > OK, after you build-release you run a script that does exactly that. > >> > > >> > Harbs <harbs.li...@gmail.com> escreveu no dia quinta, 9/03/2023 > >> > à(s) > >> 21:37: > >> > > >> >> I have a bash script to stage my app that looks like this: > >> >> > >> >> version=$(cat $DIR/releases.json | jq '.version') > >> >> version="${version%\"}" > >> >> version="${version#\"}" > >> >> > >> >> build=$(node -e 'console.log(Date.now())') jq '.build = '$build > >> >> releases.json > tmp.$$.json && mv tmp.$$.json releases.json > >> >> > >> >> sed -ie "s/MyApp.js/MyApp.js?{build_number}/g" > >> bin/js-release/index.html > >> >> sed -ie "s/{build_number}/$build/g" bin/js-release/index.html sed > >> >> -ie "s/{version_number}/$version/g" bin/js-release/index.html > >> >> > >> >> releases.json has the version and the build number is updated by > >> >> this script. > >> >> > >> >> The template html has this: > >> >> > >> >> <meta name="build" content="{build_number}"> > >> >> <meta name="version" content="{version_number}"> > >> >> <link rel="stylesheet" type="text/css" > >> >> href="${application}.css?{build_number}"> > >> >> > >> >> The HTML file on the server has a very short TTL. The rest of the > >> >> files have a much longer TTL. The build script busts the cache > >> >> when it’s > >> deployed. > >> >> > >> >> Change “MyApp” to the name of your app. > >> >> > >> >> HTH, > >> >> Harbs > >> >> > >> >> > >> >>> On Mar 9, 2023, at 10:43 PM, Hugo Ferreira > >> >>> <hferreira...@gmail.com> > >> >> wrote: > >> >>> > >> >>> Hi, > >> >>> > >> >>> I'm releasing now updates more often and sometimes (many times), > >> >>> the browser cache my App.js In a quick google search I found a > >> >>> solution (more a workaround) => > >> >>> > >> >> > >> https://stackoverflow.com/questions/1011605/clear-the-cache-in-javasc > >> ript > >> >>> When I build - release with VS Code, it inject this line on my > >> >>> html file:<script type="text/javascript" src="./App.js"></script> > >> >>> So, I don't have control over it. > >> >>> > >> >>> What I would like to do is something like have a version flag of > >> >>> my > >> App > >> >> in > >> >>> the asconfig.json and when I build - relase the compiler inject > >> something > >> >>> like:<script type="text/javascript" src="./App.js?v=1"></script> > >> >>> <script type="text/javascript" src="./App.js?v=2"></script> ... > >> >>> > >> >>> This is possible today ? > >> >>> > >> >>> Regards, > >> >>> Hugo. > >> >> > >> >> > >> > >> >