이 프로젝트를 webpack에서 vite로 마이그레이션했다.
1. 빈 vite 만들고 필요한 것 복붙
https://tech.cloudmt.co.kr/2023/02/23/build-fast-webpack-to-vite-migratiokn/
위 글이면 왠만한건 다 해결된다.
3. index.html은 root로 옮기기
localhost:3000을 켰는데 아무것도 되지 않았다.
cra에서는 index.html을 public폴더에 만들지만, vite에서는 index.html이 root에 있어야 한다.
vite.config.js에서 설정하면 되긴 한데, 그냥 index.html을 root로 옮겨주었다.
4. index.html에 <%= blah %> 구문 지우기
[vite] Internal server error: URI malformed 에러가 뜬다.
<!-- before -->
<link rel="icon" href="%PUBLIC_URL%/hiviliage.ico" />
<!-- after -->
<link rel="icon" href="%PUBLIC_URL%/hiviliage.ico" />
참고 : https://velog.io/@aiden-goo/vite-Internal-server-error-URI-malformed
5. process.env -> import.meta.env 로 변경
process.env를 import.meta.env로 변경해주어야 한다.
참고: https://ko.vitejs.dev/guide/env-and-mode.html#env-variables-and-modes
tsconfig.json 변경
moduleResolution을 node에서 bundler로 변경해주었다.
이유는 잘 모르겠지만, tsconfig.json에서 에러가 났다.
tsconfig.json(10,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
tsconfig.json(11,5): error TS5023: Unknown compiler option 'allowImportingTsExtensions'.
tsconfig.json(12,5): error TS5070: Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy.
이유는 typescript 버전때문. typescript를 최신버전으로 바꿔주니 문제가 해결되었다.
가만보니 이건 vite관련 옵션이 아니라 typescript 관련 옵션인듯 하다.
vitest 설치
상단에 /// <reference types="vitest" /> 를 추가해줘야 test 속성에서 에러가 나지 않는다.
/// <reference types="vitest" />
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
import svgr from 'vite-plugin-svgr';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react(), svgr()],
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/setupTests.ts'
},
server: {
port: 3000
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
}
}
});
그리고 vite는 바이트가 아니라 비트라고한다..
'개발 > 그 외' 카테고리의 다른 글
자신없는 커밋할때 (0) | 2024.03.17 |
---|---|
웹개발 vscode prettier 설정 (0) | 2024.03.17 |
Rest 정리 (0) | 2023.11.23 |
React와 Express로 Kakao Login OAuth 구현하기 (1) (0) | 2023.07.12 |
라이브러리 버전의 디테일을 관리하는 package-lock.json (0) | 2022.12.22 |