public/js
폴더에 아래의 파일을 존재해야합니다.mcore.min.js
mcore.extends.js
wnInterface.js
index.html
(React 예시)<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
</head>
<body>
<div id="root"></div>
<!-- mcore.min.js 는 module 보다 상위에 존재해야합니다. -->
<script src="./js/mcore.min.js"></script>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
export default [
{
languageOptions: {
globals: {...globals.browser, M: 'readonly'}
}
}
]
{
"globals": {
"M": "readonly"
}
}
globa.d.ts
위치는 tsconfig.json
내의 include
에 선언한 영역 내에 생성하여야합니다.
export {};
declare global {
const M: any;
interface Window {
M: any;
}
}
// https://vite.dev/config/
export default defineConfig({
base: './', // base 옵션을 상대경로로 지정한다.
// ...생략
})
리소스 업데이트 시, SPA의 경우 리소스 업데이트 이후 항상 새로고침 처리가 필요합니다.
M.net.res.check API를 통해 업데이트가 있는 경우에만 리소스 업데이트를 진행하셔야합니다.
// M.net.res.check 를 통해서 업데이트가 있는 지 체크
M.net.res.check({
callback: function (status, info) {
if (info.update) {
// 업데이트 가능한 경우
M.net.res.update({
finish: function (status, info) {
switch (status) {
// 리소스 업데이트 성공
case "SUCCESS":
// 리소스 업데이트 성공 And Refresh
case "SUCCESS_AND_REFRESH":
// 앱 재시작 혹은 새로고침
M.page.replace();
break;
// ... 기타 에러 처리 생략
}
},
});
} else {
// 최신 리소스인 경우
// move next page
}
},
});