- 작성자 : AUD팀 - 2023-07-06
Start Release No : 7.0.400.20230713-01 / Update Release No :
프로젝트명 : (BCRM#D1924) AUD client 소스 변경 시, 브라우저 cache 삭제 알림 창 표시
작성자 : 김진건 / 검수자 :
기능 정보 |
|
|
|
|
|
|
---|
기능 설명
실행 경로 : ( ※ 로컬에서 확인하고자 할 때 : 빌드→ gulp 작업 필수) /AUD/main.jsp 접속 시 확인
사용 방법 : 전제조건 - 캐시 사용
제약 사항
- 캐시 사용 중인 상태에서만 확인 할 수 있음
(로컬에서 테스트 시) 터미널에서 npm run all 로 빌드
- (로컬에서 테스트 시) gulp 작업 수행
- (로컬에서 테스트 시) 빌드 된 파일 로컬 서버 폴더로 복사
- /AUD/main.jsp 접속
- 제품 업데이트 하기 전의 경우
버전코드 값이 같아서 Alert창 출력 x - 캐시가 쌓여 있고, 제품 업데이트 한 경우
AUD.LIB_BUILD_VERSION : min.js 파일(bimatrix.module.audframework.js)에서 유래한 버전 코드 / 캐시를 사용한다면 이전 버전 코드일 것
AUD_LIB_SERVER_VERSION : 텍스트 파일 (aud-lib-version.txt)에서 유래한 버전 코드 / 항상 최신 코드 적용됨
버전코드 값이 달라서 Alert창 출력 o
- 제품 업데이트 하기 전의 경우
- 소스 설명
- 개발의도 : 제품 업데이트 시, 텍스트 파일과 min.js 파일(bimatrix.module.audframework.js)에 같은 버전 코드(임의로 정한 값)를 부여하여 min.js 파일을 cached된 것을 사용하고 있다면 텍스트 파일에 적힌 코드와 다른 것을 이용하여 사용자에게 업데이트(캐시 삭제)를 유도하는 메세지를 출력하기 위함
- 간략한 흐름
- npm run all으로 빌드하면서 버전코드 생성 ( 타임스탬프 이용하여 생성 : "LIB_VERSION_yyyyMMddHHmm")
- 버전 코드만 입력된 aud-lib-version.txt 생성 : 빌드 할 때마다 새롭게 바뀜
- AUD.js에서 치환을 통해 버전코드 입력 : 서버에 올라갈 bimatrix.module.audframework.js 내 코드로 존재 (캐시)
- jsp파일에서 aud-lib-version.txt와 bimatrix.module.audframework.js 내 버전 코드 값 비교하여 Alert 메세지 출력 여부 결정
AUD.ts(기존과 비교) : LIB_BUILD_VERSION 추가
AUD.ts 원본 펼치기. . . public static META_TEMPLATE_NAME = "TEMPLATE_SD_META_VIEW"; // JSP CACHE 작업 -- 추가된 코드 public static LIB_BUILD_VERSION = "__LIB__BUILD__VERSION__OF__AUD__"; // PropertyGrid 객체 private static mPropertyGrid: PropertyGrid; public static get PropertyGrid(): PropertyGrid { return this.mPropertyGrid; } . . .
** __LIB__BUILD__VERSION__OF__AUD : 빌드 시 생성될 버전 코드와 치환될 문자열
buildversion.bat(신규 파일) : 버전 코드를 생성하여 텍스트 파일을 만들고 AUD.js에서 대상 문자열 치환 작업 수행하는 배치파일
buildversion.bat 원본 펼치기@echo off REM Timestamp 설정 FOR /F %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a SET TIMESTAMP=LIB_VERSION_%DTS:~0,8%%DTS:~8,4% REM 라이브러리버전 파일 생성 ECHO %TIMESTAMP% > ..\3.ExternalFiles\reports\aud-lib-version.txt REM AUD 문자열 replace SET file_path=.\out\model\AUD.js SET OLD_STRING="__LIB__BUILD__VERSION__OF__AUD__" powershell -Command "(Get-Content '%file_path%') -replace '%OLD_STRING%', '%TIMESTAMP%' | Set-Content '%file_path%'"
위치 : 소스 (aud-web-framework 폴더) 내 위치
package.json(기존과 비교) : "buildver" 이라는 key 추가 ( value는 buildversion.bat의 상대경로 ) 및 "all"의 value에 "buildver" 추가
package.json 원본 펼치기"scripts": { . . . "buildver": "..\\buildversion.bat", "all": "tsc && npm run del_all && npm run buildver && npm run webpack_release && npm run webpack_debug && npm run webpack_comprelease && npm run webpack_compdebug" },
** "all" 내 "buildver" 순서 배치 의도 : min.js 파일로 빌드 하기 전에 AUD.js 파일에 미리 치환하여 release와 debug에 모두 코드를 포함시키기 위함
main.jsp(기존과 비교) : 텍스트 파일을 읽어와서 jsp 내 전역변수로 사용 및 텍스트 파일 유래 버전 코드와 min.js 유래 버전코드 비교 작업 추가
main.jsp 원본 펼치기. . . <%@ page import="com.matrix.Data.io.TextFileHelper" %> <% . . . String aud_lib_server_version = TextFileHelper.ReadAllText("aud-lib-version.txt").trim(); %> . . . <script type="text/javascript"> var AUD_LIB_SERVER_VERSION = "<%=aud_lib_server_version%>"; // 텍스트 파일에서 유래한 버전코드 . . . var ShowAlertOfUpdate = function () { if(typeof AUD.LIB_BUILD_VERSION === "undefined"){ alert(AUD.Trans("EXE0051")); return; }else if(AUD.LIB_BUILD_VERSION !== AUD_LIB_SERVER_VERSION){ // AUD_LIB_SERVER_VERSION = min.js 파일(bimatrix.module.audframework.js)에서 유래한 버전코드 ( 캐시를 사용하고 있다면 코드가 이전 코드일 것 ) alert(AUD.Trans("EXE0051")); } } . . .
iStudio-ko(및 다른 Locale 코드).json (기존과 비교)
iStudio-ko.json 원본 펼치기. . . "EXE0050": "Format을 사용하려면 [연결]항목을 설정해야 합니다.", "EXE0051": "제품 업데이트가 필요합니다.\n브라우저 캐시를 삭제해주세요.", <- 코드에 출력 될 메세지 작성 . . .
aud-lib-version.txt(신규 파일) : 버전 코드가 입력된 텍스트 파일
위치 : reports 폴더 내 존재
- 레이블 없음