Spring 프로젝트 내부에 React 설정 및 Build (Gradle)
by 뚜부니해당 게시글을 Spring 프로젝트와 React에 대한 자세한 설명을 제공하지는 않습니다.
React 프로젝트 생성하기
React 프로젝트를 생성하고 싶은 위치에 아래 명령어를 입력하여 생성합니다.
npx create-react-app {프로젝트 이름}
그러면 아래와 같이 프로젝트가 원하는 위치에 생성됩니다.
CORS 이슈가 발생하지 않도록 Package.json에 proxy 설정을 추가해 줍니다.
{
// ...
"proxy": "http://localhost:8080"
}
통합 Build 설정하기
Spring에서 React를 Build 할 수 있도록 아래 설정을 Gradle에 추가합니다.
이때, frontendDir은 React 프로젝트 Path입니다.
// React 설정 시작
def frontendDir = "$projectDir/daangn-react"
sourceSets {
main {
resources { srcDirs = ["$projectDir/src/main/resources"]
}
}
}
processResources { dependsOn "copyReactBuildFiles" }
task installReact(type: Exec) {
workingDir "$frontendDir"
inputs.dir "$frontendDir"
group = BasePlugin.BUILD_GROUP
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine "npm.cmd", "audit", "fix"
commandLine 'npm.cmd', 'install' }
else {
commandLine "npm", "audit", "fix" commandLine 'npm', 'install'
}
}
task buildReact(type: Exec) {
dependsOn "installReact"
workingDir "$frontendDir"
inputs.dir "$frontendDir"
group = BasePlugin.BUILD_GROUP
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine "npm.cmd", "run-script", "build"
} else {
commandLine "npm", "run-script", "build"
}
}
task copyReactBuildFiles(type: Copy) {
dependsOn "buildReact"
from "$frontendDir/build"
into "$projectDir/src/main/resources/static"
}
// React 설정 끝
해당 설정은 다음과 같은 순서로 동작합니다.
- React 프로젝트 내부에서 npm install을 수행한다.
- React 프로젝트 내부에서 npm build를 수행하여 build 디렉터리 내부에 파일을 생성한다.
- React 프로젝트 build 디렉터리에 생성된 정적 파일을 spring 프로젝트의 resources/static으로 복사한다.
참고
'Spring' 카테고리의 다른 글
Spring @RequestParam vs. @RequestPart (0) | 2024.12.21 |
---|---|
Spring Boot, MongoDB 프로젝트 네이밍 설정 방식 (0) | 2024.12.06 |
Kotlin + Spring 프로젝트 MongoDB 설정 (0) | 2024.11.30 |
Spring DI (0) | 2022.11.27 |
properties로 Spring Boot log를 설정해보자! (0) | 2022.04.23 |
블로그의 정보
개발하는 두부
뚜부니