이 페이지에는 항상 .idx/dev.nix
에 있어야 하는 워크스페이스 환경 구성 파일의 스키마에 관한 세부정보가 포함되어 있습니다.
Nix 언어에 관해 알아보려면 공식 Nix 언어 튜토리얼을 참고하세요.
packages
환경에 설치할 패키지입니다.
pkgs
인수를 사용하여 설치할 패키지(예: pkgs.python3
)를 선택할 수 있습니다. pkgs
의 콘텐츠는 선택한 channel
채널 옵션에 따라 다릅니다.
예:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
여기에서 사용 가능한 패키지(stable-23.11 또는 unstable)를 검색할 수 있습니다.
유형: 패키지 목록
기본값: [ ]
채널
사용할 nixpkgs 채널입니다.
이 채널은 pkgs
인수의 콘텐츠를 정의합니다.
유형: 'stable-23.05', 'stable-23.11', 'stable-24.05', 'stable-24.11', 'unstable' 중 하나
기본값: "stable-23.11"
env
개발자 환경 내에서 설정되는 환경 변수입니다.
이는 모든 셸과 미리보기 서버에 전파됩니다. 환경 변수는 애플리케이션에 특정 변수 집합이 필요한 경우에 특히 유용합니다.
각 변수의 값은 문자열이거나 문자열 목록일 수 있습니다. 후자는 콜론 문자로 구분하여 연결됩니다.
PATH
는 항상 확장되고 완전히 대체되지 않으므로 목록이어야 합니다.
예:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
유형: ((문자열 목록) 또는 기타)의 속성 집합
기본값: { }
idx.extensions
IDX 워크스페이스에 설치하려는 코드 확장 프로그램
정규화된 확장 프로그램 ID 목록입니다(예: ${publisherId}.${extensionId}
).
VSX 레지스트리 열기에서 사용 가능한 확장 프로그램 목록을 확인하고 ${publisherId}.${extensionId}
를 사용하여 dev.nix
파일에 입력할 수 있습니다.
유형: (비어 있지 않은 문자열 또는 경로) 목록
기본값: [ ]
idx.previews.enable
IDX 미리보기를 사용 설정하려면 true
로 설정합니다.
이 기능을 사용하면 앱을 개발하는 동안 앱을 자동으로 실행하고 새로고침할 수 있습니다.
유형: 불리언
기본값: true
예: true
idx.previews.previews
구성 미리보기
IDX가 개발자 환경에서 실행하는 명령어를 정의합니다.
예:
{pkgs, ...}: {
idx.previews = {
enable = true;
previews = {
web = {
command = ["yes"];
cwd = "subfolder";
manager = "web";
env = {
HELLO = "world";
};
};
};
};
}
유형: (하위 모듈)의 속성 집합
기본값: { }
idx.previews.previews.<name>.activity
Android Launch Activity
유형: 문자열
기본값: ""
idx.previews.previews.<name>.command
실행할 명령어
유형: 문자열 목록
기본값: [ ]
idx.previews.previews.<name>.cwd
작업 디렉터리
유형: 문자열
기본값: ""
idx.previews.previews.<name>.env
설정할 환경 변수입니다.
유형: 문자열의 속성 집합
기본값: { }
idx.previews.previews.<name>.manager
관리자
유형: 'web', 'flutter', 'android', 'gradle' 중 하나
idx.workspace.onCreate
워크스페이스가 처음 생성되고 열릴 때 실행할 명령어입니다.
개발 환경을 설정하는 데 유용할 수 있습니다. 예를 들어 다음과 같이 실행할 npm install
를 지정합니다.
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
# files to open when the workspace is first opened.
default.openFiles = [ "src/index.ts" ];
};
}
유형: (경로 또는 문자열 또는 ({ openFiles = [ string ];})의 속성 집합
기본값: { }
idx.workspace.onStart
워크스페이스가 열릴 때마다 실행할 명령어입니다.
이는 빌드 워처를 시작하는 데 유용할 수 있습니다. 예를 들어 다음은 실행할 두 가지 명령어를 지정하는 예입니다.
{pkgs, ...}: {
idx.workspace.onStart = {
npm-watch-fe = "npm run watch:frontend";
npm-watch-be = "npm run watch:backend";
# files to open when the workspace is (re)opened.
default.openFiles = [ "src/index.ts" ];
};
}
유형: (경로 또는 문자열 또는 ({ openFiles = [ string ];})의 속성 집합
기본값: { }
imports
가져온 파일로 dev.nix 파일을 확장할 수 있습니다.
# dev.nix
{ pkgs, ... }: {
imports = [
./some-file.nix
];
# ...
}
# some-file.nix
{ pkgs, ... }: {
packages = [
pkgs.python3
];
# ...
}
dev.nix
에서 맞춤 .nix
파일을 가져오는 이유는 다음과 같이 다양합니다.
dev.nix
파일이 크고 유지보수성을 개선하기 위해 모듈화하려고 합니다.{ pkgs, ... }: { channel = "stable-24.11"; # ... imports = [ ./env-cfg.nix ./preview-config.nix ]; }
로컬 환경에 맞는 옵션을 구성하고 파일을
.gitignore
목록에 추가하려고 합니다.# dev.nix { pkgs, lib, ... }: { # ... imports = lib.optionals (builtins.pathExists ./dev.local.nix ) [ ./dev.local.nix ]; }
#.gitignore .idx/dev.local.nix
유형: 경로 목록
기본값: [ ]
services
워크스페이스가 열릴 때 사용 설정하는 일반적인 서비스입니다.
예를 들어 Postgres를 사용 설정하고 pgvector
확장 프로그램을 사용하려면 dev.nix
에 다음을 추가합니다.
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
다음 섹션에는 지원되는 모든 서비스와 구성 가능한 옵션이 나와 있습니다.
services.docker.enable
루트 없는 Docker를 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.mongodb.enable
MongoDB 서버를 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.mongodb.package
사용할 MongoDB 패키지입니다.
유형: 패키지
기본값: <derivation mongodb-6.0.11>
services.mongodb.port
Mongod가 리슨할 포트를 구성합니다.
기본적으로 tcp는 사용 중지되며 Mongod는 /tmp/mongodb/mongodb.sock에서만 리슨합니다.
연결하려면 연결 문자열 mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock
를 사용하세요.
유형: 16비트 부호 없는 정수, 0~65535 사이 (양 끝값 포함)
기본값: 0
services.mysql.enable
MySQL 서버를 사용 설정할지 여부입니다.
서버는 비밀번호가 없는 사용자 루트로 초기화됩니다. 따라서 사용자를 추가하고 데이터베이스를 만들려면 mysql -u root
를 사용하세요.
유형: 불리언
기본값: false
예: true
services.mysql.package
사용할 MySQL 패키지입니다.
유형: 패키지
기본값: pkgs.mysql
예: pkgs.mysql80
services.postgres.enable
PostgreSQL 서버를 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.postgres.enableTcp
Postgres가 TCP에서 리슨하도록 사용 설정할지 여부입니다.
유형: 불리언
기본값: true
예: true
services.postgres.package
사용할 PostgreSQL 패키지입니다.
유형: 패키지
기본값: pkgs.postgresql
예: pkgs.postgresql_15
services.postgres.extensions
설치할 Postgres 확장 프로그램
유형: ('age', 'apache_datasketches', 'cstore_fdw', 'hypopg', 'jsonb_deep_sum', 'periods', 'pg_auto_failover', 'pg_bigm', 'pg_cron', 'pg_ed25519', 'pg_embedding', 'pg_hint_plan', 'pg_hll', 'pg_ivm', 'pg_net', 'pg_partman', 'pg_rational', 'pg_relusage', 'pg_repack', 'pg_safeupdate', 'pg_similarity', 'pg_topn', 'pg_uuidv7', 'pgaudit', 'pgjwt', 'pgroonga', 'pgrouting', 'pgsql-http', 'pgtap', 'pgvector', 'plpgsql_check', 'plr', 'plv8', 'postgis', 'promscale_extension', 'repmgr', 'rum', 'smlar', 'tds_fdw', 'temporal_tables', 'timescaledb', 'timescaledb-apache', 'timescaledb_toolkit', 'tsearch_extras', 'tsja', 'wal2json' 중 하나)
기본값: [ ]
예: [ "pgvector" "postgis" ];
services.pubsub.enable
Google Pub/Sub 에뮬레이터를 사용 설정할지 여부입니다.
에뮬레이터 사용에 관한 자세한 문서는 https://cloud.google.com/pubsub/docs/emulator#using_the_emulator를 참고하세요 .
유형: 불리언
기본값: false
예: true
services.pubsub.port
Pub/Sub가 수신 대기할 포트를 구성합니다.
유형: 16비트 부호 없는 정수, 0~65535 사이 (양 끝값 포함)
기본값: 8085
services.pubsub.project-id
Pub/Sub 에뮬레이터를 실행하는 데 사용할 프로젝트 ID입니다. 이 프로젝트는 테스트 전용이며, 존재할 필요는 없으며 로컬에서만 사용됩니다.
유형: [a-z][a-z0-9-]{5,29} 패턴과 일치하는 문자열
기본값: "idx-pubsub-emulator"
services.redis.enable
Redis 서버를 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.redis.port
Redis가 리슨할 포트를 구성합니다.
기본적으로 tcp는 사용 중지되어 있으며 redis는 /tmp/redis/redis.sock에서만 수신 대기합니다.
유형: 16비트 부호 없는 정수, 0~65535 사이 (양 끝값 포함)
기본값: 0
services.spanner.enable
Google Cloud Spanner 에뮬레이터를 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.spanner.fault-injection
트랜잭션에 무작위 결함 주입을 사용 설정할지 여부입니다.
유형: 불리언
기본값: false
예: true
services.spanner.grpc-port
에뮬레이터를 바인딩해야 하는 TCP 포트입니다.
유형: 16비트 부호 없는 정수, 0~65535 사이 (양 끝값 포함)
기본값: 9010
services.spanner.rest-port
REST 요청이 제공되는 포트입니다.
유형: 16비트 부호 없는 정수, 0~65535 사이 (양 끝값 포함)
기본값: 9020