Amplify로 Vite.js 프로젝트 빌드 및 배포
그러나 vite를 사용한 개발은 웹 앱에서의 호스팅과 관련하여 상당한 문제를 암시했습니다. 사실 vite는 모듈 기반이고 css 코드 분할이 있어 프로젝트 호스팅을 어렵게 만들었습니다.
Amplify에서 처음 호스팅을 시작했을 때 환경이 완전히 비어 있고 서비스에서 페이지 콘텐츠를 가져오지 않는 문제가 있었습니다.
SPA에 대해 AWS가 제안하는 리디렉션을 사용하여 초기 문제를 수정했습니다.
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>
Beware with this redirect link as it's position on teh rewrites and redirects can affect the performance of the page.
따라서 재작성 및 리디렉션 페이지는 다음과 같이 표시됩니다.
그런 다음 amplify에서 vite 생성 폴더
dist
를 찾을 수 있도록 빌드 설정을 조정해야 했습니다.빌드 파일은 다음과 같이 생겼습니다.
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build --prod
artifacts:
# IMPORTANT - Please verify your build output directory
baseDirectory: dist
files:
- '**/*'
cache:
paths:
- node_modules/**/*
이 단계를 따른 후 웹 페이지를 올바르게 호스팅할 수 있었지만 amplify는 일부 웹 페이지를 가져오는 데 여전히 임의의 문제가 있었습니다. 예를 들어 리디렉션이 작동하지 않아 Amplify CloudFrontURL이 페이지를 찾을 수 없다고 주장하는 빈 페이지로 이동했습니다.
분명히 코드의 일부가 발견되지 않았습니다. 이것은 며칠 동안 우리를 붙잡고 해결책을 찾기 위해 고군분투한 문제입니다. 문제는
vite.config.js
에서 프로젝트의 기반을 추적할 수 없도록 만드는 몇 가지 사항을 변경해야 한다는 것입니다.우리
vite.config.js
는 이렇게 생겼습니다. base: './index.html'
를 추가하면 우리가 가진 임의의 404의 실수를 고칠 수 있었습니다.import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import mkcert from 'vite-plugin-mkcert'
export default defineConfig({
server: { https: true },
plugins: [react(), mkcert()],
base: './index.html',
build: {
input: {
app: './index.html', // default
},
},
resolve: {
alias: {
'./runtimeConfig': './runtimeConfig.browser',
}
}
})
이 솔루션이 동일한 문제로 어려움을 겪고 있는 누군가에게 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(Amplify로 Vite.js 프로젝트 빌드 및 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/muvinai/building-and-distributing-vitejs-projects-with-amplify-hdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)