メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.replit.com/llms.txt

Use this file to discover all available pages before exploring further.

Replitアプリは2つのファイル(.replitreplit.nix)で設定されます。これらのファイルは、コードの実行から開発ツールや言語まで、Replitアプリの動作に影響を与えます。 これらの設定ファイルはデフォルトで非表示になっています。ファイルツリーメニューから「Show hidden files」を選択して、Replitアプリに表示させてください。
隠しファイルを表示する画面

replit.nix ファイル

Replitはパッケージと環境を管理するためにNixを使用します。replit.nixファイルは以下の目的で使用されます: システム依存関係の指定: パッケージマネージャーであるNixで管理される、Replitアプリに必要なソフトウェアパッケージを正確に定義します。 再現可能な環境の作成: 開発環境が一貫して再現可能であることを確保し、共同プロジェクトや複数のシステムでのテストに最適です。 Dependenciesツールを通じてNixパッケージを視覚的に管理できます。詳しくはシステム依存関係ガイドをご覧ください。 replit.nixファイルでパッケージを設定するには、deps配列にpkgs.プレフィックスを付けてNixパッケージを列挙できます。変更はシェルを再読み込みした後に同期されます。
{ pkgs }: {
  deps = [
    pkgs.nodejs-19_x
    pkgs.nodePackages.typescript-language-server
    pkgs.yarn
    pkgs.replitPackages.jest
  ];
}

.replit ファイル

.replitファイルはReplitアプリの動作を制御します。toml設定形式を使用します。設定できる主な項目を以下に示します: 実行コマンド: Runボタンを選択したときに実行されるコマンドを指定します。各テンプレートにはコードをすぐに実行できるデフォルトの実行コマンドがあります。より高度なアプリにはWorkflowsを使用してください。 Language Server Protocol(LSP): オートコンプリート、コードナビゲーション、コードハイライト、リアルタイムのリントとエラー表示などの機能を提供します。 環境変数: アプリを正しく動作させるために必要な環境変数を設定・管理します。 依存関係とパッケージ: .replitファイルを通じてパッケージのインストールと設定を直接管理し、起動時にReplitアプリが必要なツールをすべて準備できるようにします。Dependenciesツールを通じて依存関係を視覚的に管理できます。詳しくはシステムモジュールガイドをご覧ください。 Pythonアプリケーションのデフォルト.replitファイルは次のようになります:
entrypoint = "main.py"
modules = ["python-3.10:v18-20230807-322e88b"]

[nix]
channel = "stable-23_05"

[unitTest]
language = "python3"

[gitHubImport]
requiredFiles = [".replit", "replit.nix"]

[deployment]
run = ["python3", "main.py"]
deploymentTarget = "cloudrun"
以下の表は、.replitファイル内の各設定の概要を示し、各設定がReplitアプリ環境に与える影響を説明しています。
設定キー値/例説明
entrypointmain.pyエディターを開いたときにデフォルトで実行・表示されるメインファイルを指定します。アプリケーションに合わせてファイル名を変更できます。
modules["python-3.10:v18-20230807-322e88b"]Replitがサポートするプログラミング言語やその他の主要な依存関係の特定のバージョンを定義します。
[nix]システム依存関係を管理するパッケージマネージャーNixの使用設定を指定します。詳しくは依存関係管理ドキュメントをご覧ください。
channelstable-23_05使用するNixチャンネルを指定し、利用可能なシステム依存関係のバージョンに影響します。
packages["cowsay", "htop"]インストールするNixパッケージを指定します。より細かい制御にはreplit.nixも使用できます。
[unitTest]Replitアプリ内のユニットテストに関連する設定を構成します。
languagepython3ユニットテストに使用する言語を指定し、Python 3がテストに使用されることを示します。
[gitHubImport]GitHubからプロジェクトをインポートする方法に影響する設定。特に含める必要があるファイルを指定します。
requiredFiles[".replit", "replit.nix"]プロジェクトを正しく機能させるためにインポート時に存在する必要があるファイルを列挙します。
[deployment]ReplitアプリからライブEnvironmentへのアプリケーションデプロイメントの設定を含みます。
run["python3", "main.py"]デプロイメント中にアプリケーションを起動するために実行されるコマンド。
deploymentTargetcloudrunアプリケーションをホストするデプロイメントターゲットプラットフォームを指定します。
.replitファイルのデフォルト設定を理解したら、次のセクションでReplitアプリの基本設定と高度な設定の方法を確認してください。

基本設定の構成

エントリーポイント

これはプロジェクトのメインファイルです。runプロパティを定義しない場合、entrypointがランタイムによって実行されるファイルになります。
entrypoint = "<file-name>.py"

Runコマンド

.replitファイルのrunプロパティは、Replit環境でRunボタンを選択したときに実行される最初のコマンドまたは一連のコマンドを決定する重要な機能です。Runコマンドは、実行するコマンドを表す文字列、またはコマンドとその引数を表す文字列の配列として指定できます。 Runコマンドを設定する一般的な方法:
  • 単一コマンド: この例は、Replitアプリで直接実行する単一コマンドを渡す方法を示しています。この設定でRunボタンを押すと、Consoleペインにグリーティングが表示されます: 例: run = "echo 'Hello, Replit!'"
  • 明示的な引数: 状況によっては、引用符やシェル補間ルールの解析を避けるために、より明示的にすることが有益な場合があります。引数を分離して上記の例を書き直すことができます。 グリーティングをechoの最初で唯一の引数として明示的に渡しているため、'"の両方は不要になります: 例: run = ["echo", "Hello, Replit!"]
  • 複数コマンド: この例は、フロントエンドとバックエンドなど複数のプロセスを同時に実行する方法を示しています。各サーバーが異なるポートにバインドするPythonバックエンドとTypeScriptフロントエンドを開発する場合に役立ちます: 例: run = "python -m app & npm run start & wait"

プロセス管理

&で複数のコマンドを同時に実行できますが、サービス間のログを区別するためにより良いエクスペリエンスが必要な場合があります。システム依存関係を追加して、process-composeなどのツールで複数のプロセスをより適切にオーケストレーションできます。

Buildフェーズ

一部の言語やランタイムでは、コードをrunする前に別のコンパイルフェーズがあります。これは、TypeScript、Golang、Javaなどのコンパイル言語を対象とするほか、次のrunが実行される前に環境、データ、設定をリセットするためのパラメーターを提供します。
  • コンパイル: TypeScriptリポジトリでは、コードを実行する前にtscを実行する必要がある場合があります。 例:
build = "tsc app.ts"
run = "node app.js"

環境変数の設定

実行前にサービスに環境変数を提供するには、runプロパティをテーブルに展開できます。 これはより複雑な変更であり、.replitファイル内のrun = "..."プロパティの位置を移動する必要がある場合があります。 以下のdiffは、[run]argsでコマンドを指定し、[run.env]で変数NAMEを指定する方法を示しています:
-run = ["bash", "-c", "echo \"Hello, $NAME!\""]

 modules = ["nodejs-20"]

 hidden = [".pythonlibs"]

+# We need to move our new [run] down past all the
+# top-level properties that do not start with a `[`!
+[run]
+args = ["bash", "-c", "echo \"Hello, $NAME!\""]
+
+[run.env]
+NAME="Replit"

 [nix]
 channel = "stable-23_11"

インタラクティビティ

インタラクティブなプログラムもRunボタンから起動でき、プログラムが実行されているターミナルと開発環境を区別する方法を提供します。 以下のカウントスクリプトを考えてみましょう:
[run]
args = ["bash", "-c", """
count=0
while read -p "$PROMPT" -r next && [ -n "$next" ]; do
    count=$((count+next))
done
echo "The numbers you entered sum to $count!"
"""]

[run.env]
PROMPT = "Next number ([Enter] to end): "

高度な設定オプション

Replitアプリで利用可能な詳細な設定オプションを確認しましょう。開発環境のカスタマイズ、実行コマンドの管理、言語サービスの統合、依存関係の処理が可能です。
設定キー値/例説明
onBootonBootonBoot = "npm install"Replitアプリが起動したときに実行されるコマンド。
compilecompile(デフォルト例なし)runコマンドの前に実行されるコマンド。C++などのコンパイル言語で使用されます。
languagelanguagelanguage = "javascript"GitHubインポート時またはReplitアプリ作成時の言語を指定します。
entrypointentrypointentrypoint = "index.js"エディターを開いたときに実行・表示されるメインファイル。
hiddenhiddenhidden = [".config", "package-lock.json"]サイドのファイルツリーでデフォルトで非表示にするファイルまたはフォルダー。
audioaudioaudio = truetrueに設定するとシステム全体のオーディオを有効にします。

システム全体のオーディオに関する注意

.replitファイルでaudio = trueを設定する場合、新しい設定を有効にするためにシェルでkill 1を実行する必要がある場合があります。 グラフィカルアプリケーションを実行する場合、Outputペインの右下にチェックボックス付きのヘッドフォンアイコンが表示されます。 ブラウザの制限により、更新するたびにこれを有効にする必要があります。
# Ensure this is at the top of your `.replit` file, outside of any `[`-bracketed section
audio = true

パッケージャーの設定

設定キー値/例説明
packagerlanguagepackager.language = "python3"パッケージ操作に使用する言語。
packager featuresguessImportspackager.features.guessImports = trueReplitアプリを実行する前にインストールするパッケージを自動的に推測します。
packager featurespackageSearchpackager.features.packageSearch = truetrueに設定するとパッケージャーのサポートを有効にします。
packager featuresenabledForHostingpackager.features.enabledForHosting = falseReplitアプリのホスティングにパッケージインストールのRunが必要かどうかを設定します。
packagerafterInstallafterInstall = "echo 'package installed'"パッケージャーで新しいパッケージがインストールされた後に実行されるコマンド。
packagerignoredPathsignoredPaths = [".git"]パッケージを推測しようとするときに無視するパス。
packagerignoredPackagesignoredPackages = ["twitter", "discord"]インストール時にパッケージの推測を試みないモジュール。

パッケージャー設定の.replit設定例

# Define the language for the Replit App
packager.language = "python3"

# Enable features for automatic package management
[packager.features]
guessImports = true
packageSearch = true
enabledForHosting = false

# Command to run after each package installation
packager.afterInstall = "echo 'Package installed successfully'"

# Define paths and packages that should be ignored by the package manager
packager.ignoredPaths = [".git", "node_modules"]
packager.ignoredPackages = ["twitter", "discord"]

# Additional deployment settings
[deployment]
run = ["python3", "app.py"]

デプロイメントの設定

設定キー値/例説明
deploymentrundeployment.run = "npm start"デプロイメントコンテナー起動時に実行されるコマンド。
deploymentbuilddeployment.build = "npm run build"デプロイメントを実行する前に実行されるコマンド。
deploymentignorePortsdeployment.ignorePorts = truetrueの場合、デプロイメントの成功にオープンポートの確認が不要になります。

デプロイメント設定の.replit設定例


# Specifies the main entry point for the project
entrypoint = "app.js"

# Configuration settings for deploying the application
[deployment]
run = "npm start"
build = "npm run build"
ignorePorts = true
インタープリターの設定は非推奨となり、Replitでは利用できなくなりました。代わりに、Runコマンドを使用してReplitアプリ環境内でスクリプトとアプリケーションをどのように実行するかを設定することをお勧めします。

ポートの設定

設定キー値/例説明
portslocalPortlocalPort = 3000Replitが外部ポートにバインドするポート。
portsexternalPortexternalPort = 80localPortにリンクされた公開アクセス可能なポート。

ポート管理のための.replit設定ファイルの例

# Networking configuration to expose your application on specific ports
[[ports]]
localPort = 3000
externalPort = 80

Replitアプリの環境メタデータへのアクセス

Node.js

すべての環境変数にアクセスするには: console.log(process.env); 単一の変数(REPL_SLUG)にアクセスするには: console.log(process.env.REPL_SLUG);

Python

すべての環境変数にアクセスするには:
import os
print(os.environ)
単一の変数(REPL_SLUG)にアクセスするには:
import os
variable = os.environ.get('REPL_SLUG')
print(variable)

Rust

すべての環境変数にアクセスするには:
use std::env;
fn main() {
    for (key, value) in env::vars() {
        println!("{}: {}", key, value);
    }
}
単一の変数(REPL_SLUG)にアクセスするには:
use std::env;
fn main() {
    let variable = env::var("REPL_SLUG").unwrap();
    println!("{}", variable);
}

環境変数

以下はReplitアプリ内からアクセスできる環境変数です:
キー説明
REPL_OWNERReplitアプリのオーナーのユーザー名。Replitアプリがテキストベースでウェブサーバーがない場合、REPL_OWNERはReplitアプリにアクセスしている現在のユーザーの値を反映します
REPL_IDReplitアプリの一意のUUID文字列
HOMEReplitアプリのホームパス
systemReplitアプリで動作しているオペレーティングシステム
LANGReplitアプリの言語と文字エンコードを設定し、テキストの処理と表示方法に影響します
REPL_IMAGEReplitアプリに対応するDockerイメージ
REPL_LANGUAGEReplitアプリに設定されたプログラミング言語。ランタイム環境とツールを決定するために使用されます
REPL_PUBKEYSさまざまな公開APIキーを含む文字列化されたJSONオブジェクト
REPL_SLUGURLやファイル名で使用するのに適した、Replitアプリの名前のシンプルで機械可読なバージョン
PRYBAR_FILEReplitアプリのメイン/エントリーポイントファイル
REPLIT_DEV_DOMAINプロジェクトエディターのReplitアプリにreplit.dev URLを提供します。この環境変数はデプロイメントでは利用できません