메인 콘텐츠로 건너뛰기
Replit App은 .replitreplit.nix 두 파일로 구성됩니다. 이 파일들은 코드 실행부터 개발 도구 및 언어에 이르기까지 Replit App의 동작 방식에 영향을 줍니다. 구성 파일은 기본적으로 숨겨져 있습니다. 파일 트리 메뉴에서 “숨김 파일 표시”를 선택하면 Replit App에서 볼 수 있습니다.
image

replit.nix 파일

Replit은 패키지와 환경을 관리하기 위해 Nix를 사용합니다. replit.nix 파일은 다음 용도로 사용됩니다: 시스템 의존성 지정: 패키지 관리자인 Nix를 통해 Replit App에 필요한 소프트웨어 패키지를 정확히 정의합니다. 재현 가능한 환경 생성: 개발 환경을 일관되고 재현 가능하게 유지하여 협업 프로젝트 및 여러 시스템에서의 테스트에 이상적입니다. Dependencies 도구를 통해 Nix 패키지를 시각적으로 관리할 수 있습니다. 자세한 내용은 시스템 의존성 가이드를 참조하세요. replit.nix 파일로 패키지를 구성하려면 deps 배열에 pkgs. 접두사를 붙여 Nix 패키지를 나열할 수 있습니다. 변경 사항은 Shell을 다시 로드한 후 동기화됩니다.

.replit 파일

.replit 파일은 Replit App의 동작을 제어합니다. toml 구성 형식을 사용합니다. 구성할 수 있는 주요 항목은 다음과 같습니다: 실행 명령: Run 버튼을 선택했을 때 실행되는 명령을 지정합니다. 각 템플릿에는 즉시 코드를 실행할 수 있도록 기본 실행 명령이 있습니다. 더 맞춤화되고 복잡한 앱의 경우 Workflows를 사용하세요. 언어 서버 프로토콜(LSP): 자동 완성, 코드 탐색, 코드 하이라이팅, 실시간 린팅 및 오류 표시 등의 기능을 제공합니다. 환경 변수: 애플리케이션이 올바르게 실행되는 데 필요한 환경 변수를 설정하고 관리합니다. 의존성 및 패키지: .replit 파일을 통해 패키지 설치 및 구성을 직접 관리하여 Replit App 시작 시 필요한 모든 도구가 준비되도록 합니다. Dependencies 도구를 통해 의존성을 시각적으로 관리할 수 있습니다. 자세한 내용은 시스템 모듈 가이드를 참조하세요. Python 애플리케이션의 경우 기본 .replit 파일은 다음과 같습니다:
다음 표는 .replit 파일의 각 설정과 그 기능 및 Replit App 환경에 미치는 영향을 보여줍니다.
구성 키값/예시설명
entrypointmain.py편집기를 열었을 때 기본적으로 실행되고 표시되는 메인 파일을 지정합니다. 애플리케이션에 맞게 파일 이름을 변경할 수 있습니다.
modules["python-3.10:v18-20230807-322e88b"]Replit에서 지원하는 프로그래밍 언어 또는 주요 의존성의 특정 버전을 정의합니다.
[nix]시스템 의존성을 관리하는 패키지 관리자인 Nix 사용을 위한 설정을 지정합니다. 자세한 내용은 의존성 관리 문서를 참조하세요.
channelstable-23_05사용할 Nix 채널을 나타내며, 사용 가능한 시스템 의존성 버전에 영향을 줍니다.
packages["cowsay", "htop"]설치할 Nix 패키지를 지정합니다. 더 세밀한 제어가 필요한 경우 replit.nix를 사용할 수도 있습니다.
[unitTest]Replit App 내 단위 테스트 관련 설정을 구성합니다.
languagepython3단위 테스트에 사용되는 언어를 지정합니다. Python 3이 테스트 작성에 사용됨을 나타냅니다.
[gitHubImport]GitHub에서 프로젝트를 가져올 때 영향을 미치는 설정으로, 포함되어야 하는 파일을 지정합니다.
requiredFiles[".replit", "replit.nix"]프로젝트가 올바르게 작동하도록 가져올 때 반드시 존재해야 하는 파일 목록입니다.
[deployment]Replit App에서 라이브 환경으로 애플리케이션을 배포하는 설정을 포함합니다.
run["python3", "main.py"]배포 시 애플리케이션을 시작하기 위해 실행되는 명령입니다.
deploymentTargetcloudrun애플리케이션 호스팅을 위한 배포 대상 플랫폼을 지정합니다.
이제 .replit 파일의 기본 구성에 대해 이해했으니, 다음 섹션에서 Replit App의 기본 및 고급 설정을 구성하는 방법을 알아보겠습니다.

기본 설정 구성

진입점(Entrypoint)

프로젝트의 메인 파일입니다. run 속성을 정의하지 않으면 런타임에서 entrypoint로 지정된 파일을 실행합니다.

Run 명령

.replit 파일의 run 속성은 Replit 환경에서 Run 버튼을 선택했을 때 초기 실행되는 명령 또는 일련의 명령을 결정하는 핵심 기능입니다. Run 명령은 실행할 명령을 나타내는 문자열이나 명령과 개별 인수를 나타내는 문자열 배열로 지정할 수 있습니다. Run 명령을 구성하는 일반적인 방법:
  • 단일 명령: Replit App에서 단일 명령을 직접 실행하는 방법입니다. .replit 파일에 이를 추가하면 Run 버튼을 누를 때 Console 창에 인사말이 표시됩니다: 예시: run = "echo 'Hello, Replit!'"
  • 명시적 인수: 경우에 따라 따옴표 파싱이나 Shell 보간 규칙을 피하기 위해 더 명시적으로 작성하는 것이 유리할 수 있습니다. 위의 예시를 인수를 분리하여 다시 작성할 수 있습니다. 인사말을 echo의 첫 번째이자 유일한 인수로 명시적으로 전달하므로 '" 모두 필요하지 않습니다: 예시: run = ["echo", "Hello, Replit!"]
  • 여러 명령: 프론트엔드와 백엔드 같은 여러 프로세스를 동시에 실행하는 방법입니다. 각 서버가 다른 포트에 바인딩되는 Python 백엔드와 TypeScript 프론트엔드를 개발할 때 유용합니다: 예시: run = "python -m app & npm run start & wait"

프로세스 관리

&로 여러 명령을 동시에 실행할 수 있지만, 서비스 간 로그를 더 명확하게 구분하고 싶을 수 있습니다. process-compose와 같은 시스템 의존성을 추가하면 여러 프로세스를 더 효과적으로 관리할 수 있습니다.

Build 단계

TypeScript, Golang, Java 같은 컴파일 언어나 다음 run 전에 환경, 데이터, 구성을 재설정해야 하는 경우 코드를 run하기 전에 별도의 컴파일 단계가 필요할 수 있습니다.
  • 컴파일: TypeScript 저장소에서는 코드를 실행하기 전에 tsc를 먼저 실행해야 할 수 있습니다. 예시:

환경 변수 포함

실행 전에 서비스에 환경 변수를 제공하려면 run 속성을 테이블로 확장할 수 있습니다. 이는 더 복잡한 변경으로, .replit 파일 내에서 run = "..." 속성의 위치를 이동해야 할 수 있습니다. 다음 diff는 [run]args를 통해 명령을 전달하고 [run.env]에서 변수 NAME을 제공하는 방법을 보여줍니다:

대화형 실행

대화형 프로그램도 Run 버튼을 통해 실행할 수 있으며, 개발 환경과 프로그램이 실행되는 터미널을 구분하는 방법을 제공합니다. 다음 집계 스크립트를 예로 들어 보겠습니다: 예시

고급 구성 옵션

Replit App에서 사용 가능한 상세 구성 옵션을 살펴보세요. 개발 환경 사용자 정의, 실행 명령 관리, 언어 서비스 통합, 의존성 처리를 맞춤화할 수 있습니다.
구성값/예시설명
onBootonBootonBoot = "npm install"Replit App 부팅 시 실행되는 명령입니다.
compilecompile(기본 예시 없음)run 명령 전에 실행되는 명령으로, C++과 같은 컴파일 언어에서 사용됩니다.
languagelanguagelanguage = "javascript"GitHub 가져오기나 Replit App 생성 시 언어를 지정합니다.
entrypointentrypointentrypoint = "index.js"편집기를 열었을 때 실행 및 표시되는 메인 파일입니다.
hiddenhiddenhidden = [".config", "package-lock.json"]파일 트리에서 기본적으로 숨길 파일 또는 폴더입니다.
audioaudioaudio = truetrue로 설정하면 시스템 전체 오디오를 활성화합니다.

시스템 전체 오디오 관련 참고 사항

.replit 파일에서 audio = true를 설정한 경우 새 설정을 적용하려면 Shell에서 kill 1을 실행해야 할 수 있습니다. 그래픽 애플리케이션을 실행할 때 Output 창의 오른쪽 하단에 체크박스가 있는 헤드폰 아이콘이 표시됩니다. 브라우저 제한으로 인해 새로 고침할 때마다 이 기능을 활성화해야 합니다.

패키저 구성

구성값/예시설명
packagerlanguagepackager.language = "python3"패키지 작업에 사용되는 언어입니다.
packager featuresguessImportspackager.features.guessImports = trueReplit App 실행 전에 설치할 패키지를 자동으로 감지합니다.
packager featurespackageSearchpackager.features.packageSearch = truetrue로 설정하면 패키저 지원을 활성화합니다.
packager featuresenabledForHostingpackager.features.enabledForHosting = falseReplit App 호스팅 시 패키지 설치 실행 여부를 설정합니다.
packagerafterInstallafterInstall = "echo 'package installed'"패키저를 통해 새 패키지가 설치된 후 실행되는 명령입니다.
packagerignoredPathsignoredPaths = [".git"]패키지 감지 시 무시할 경로입니다.
packagerignoredPackagesignoredPackages = ["twitter", "discord"]설치 중 자동 감지를 시도하지 않을 모듈입니다.

패키저 구성의 .replit 구성 예시

배포 구성

구성값/예시설명
deploymentrundeployment.run = "npm start"배포 컨테이너가 시작될 때 실행되는 명령입니다.
deploymentbuilddeployment.build = "npm run build"배포 실행 전에 실행되는 명령입니다.
deploymentignorePortsdeployment.ignorePorts = truetrue이면 배포 성공 시 열린 포트 확인이 필요하지 않습니다.

배포 구성의 .replit 구성 예시

인터프리터 구성은 더 이상 사용되지 않으며 Replit에서 제공되지 않습니다. 대신 Replit App 환경 내에서 스크립트 및 애플리케이션이 실행되는 방식을 구성하려면 Run 명령을 사용하는 것을 권장합니다.

포트 구성

구성값/예시설명
portslocalPortlocalPort = 3000Replit이 외부 포트에 바인딩할 포트입니다.
portsexternalPortexternalPort = 80localPort에 연결된 공개적으로 접근 가능한 포트입니다.

포트 관리를 위한 .replit 구성 파일 예시

Replit App 환경 메타데이터 접근

Node.js

모든 환경 변수에 접근하려면: console.log(process.env); 단일 변수(REPL_SLUG)에 접근하려면: console.log(process.env.REPL_SLUG);

Python

모든 환경 변수에 접근하려면:
단일 변수(REPL_SLUG)에 접근하려면:

Rust

모든 환경 변수에 접근하려면:
단일 변수(REPL_SLUG)에 접근하려면:

환경 변수

다음은 Replit App 내에서 접근 가능한 환경 변수입니다:
설명
REPL_OWNERReplit App 소유자의 사용자 이름입니다. Replit App이 텍스트 기반이고 웹 서버가 없는 경우 REPL_OWNER는 현재 Replit App에 접근 중인 사용자의 값을 반영합니다
REPL_IDReplit App의 고유 UUID 문자열입니다
HOMEReplit App의 홈 경로입니다
systemReplit App에서 실행 중인 운영 체제입니다
LANGReplit App의 언어 및 문자 인코딩을 설정하여 텍스트 처리 및 표시 방식에 영향을 줍니다
REPL_IMAGEReplit App에 해당하는 Docker 이미지입니다
REPL_LANGUAGEReplit App에 구성된 프로그래밍 언어로, 런타임 환경 및 도구 결정에 사용됩니다
REPL_PUBKEYS다양한 공개 API 키를 포함하는 JSON 문자열 객체입니다
REPL_SLUGURL 및 파일 이름에 사용하기 적합한 Replit App 이름의 단순화된 기계 가독 버전입니다
PRYBAR_FILEReplit App의 메인/진입점 파일입니다
REPLIT_DEV_DOMAINProject Editor에서 Replit App의 replit.dev URL을 제공합니다. 이 환경 변수는 배포 환경에서는 사용할 수 없습니다