vite 환경에서 mock 환경을 구성하여 보았습니다.
* 타입스크립트를 사용하지 않았습니다.
필요한 모듈은 2개 입니다.
yarn add mockjs
yarn add vite-plugin-mock
먼저 응답에 사용될 함수를 만들어 줍니다.
함수는 익명함수로 만들되, 배열형태의 값을 반환하면 됩니다.
만약, 타입스크립트를 사용 한 다면 타입제한을 붙일 수 있습니다(MockMethod 타입 등)
* 파일이름 : index.js
//URL 목록
export default function () {
return [
{
url: '/api/get', //get 방식
method: 'get',
response: ({ query }) => {
console.log(query)
return {
code: 0,
data: {
name: 'data get'
}
}
}
},
{
url: '/api/post1', //post 방식
method: 'post',
timeout: 2000,
response: {
code: 0,
data: {
name: 'data post'
}
}
},
{
url: '/api/post2', //post 방식, 파라미터를 분해하는 샘플
method: 'post',
rawResponse: async (req, res) => {
let reqbody = ''
await new Promise((resolve) => {
req.on('data', (chunk) => {
reqbody += chunk
})
req.on('end', () => resolve(undefined))
})
console.log(JSON.parse(reqbody))
res.setHeader('Content-Type', 'application/json')
//res.statusCode = 401 //상태코드를 넣고싶으면!!!!!!!!!
res.end(reqbody)
}
},
]
}
원하는 url 형식과 응답할 코드를 작성 한 뒤에 해당 파일은 루트 디렉토리에 mock 디렉토리를 만들어 주었습니다.
위 내용은 샘플이며 원하는 코드를 작성해도 됩니다.
* 원하는 디렉토리를 사용해도 무방 합니다.
마지막으로 config 설정 입니다.
설정은 너무나도 간단 합니다.
* 파일이름 : vite.config.js
//기타 다른 import 생략..
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig({
plugins: [
viteMockServe({
mockPath: './mock', //mock가 사용할 파일 경로
})
],
//기타 다른 설정 생략..
})
설정 파일에 plugins 배열에 "viteMockServe" 함수를 추가하면 끝난 것을 볼 수 있습니다.
호출은 간단합니다.
vite 환경에서 구동중인 자신의 ip와 port를 그대로 위에 정한 url을 호출하면 됩니다.
vite 실행 환경을 바뀌지 않았다면 "127.0.0.1:5173/자신이정한주소" 으로 호출하면 됩니다.
간단하게 작성하여 본 mock 구성이였습니다.
반응형
'앵귤러, 리엑트, 뷰 > 뷰(Vuejs)' 카테고리의 다른 글
[Vite] 타입스크립트 환경에서의 뷰(Vue) 컴파일 (2) | 2024.02.08 |
---|---|
[Vuejs] props 바인딩 watch, watchEffect (0) | 2023.12.19 |
[Vuejs] setup function returned a promise, but no <Suspense> boundary was found in the parent component tree (1) | 2023.10.16 |
Vuejs 인덱스 파일 사용하기(index.js, index.ts) (1) | 2023.10.16 |
[Vue warn] Extraneous non-emits event listeners ... vuejs 3 (0) | 2023.08.23 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글