패키지 모드는 언어에 새 문법을 추가하지 않고 기존 Topaz 모듈에 루트, 의존성, 잠금 파일, 오프라인 입력을 결합합니다.
기본 규칙
topaz.toml은 패키지 이름, 언어 버전, 진입점, 의존성을 선언합니다. topaz.lock은 선택된 의존성과 무결성 정보를 고정합니다. 로컬 의존성은 경로로, 레지스트리 의존성은 vendor/<name>/<version>에 복사된 내용으로 해석됩니다.
사용 방법
topaz init으로 패키지를 만들고, add로 의존성을 추가하고, lock으로 잠금 파일을 갱신합니다. vendor는 외부 의존성을 로컬에 복사하고, --locked는 매니페스트와 잠금 파일이 다르면 작업을 멈춥니다. 진입 파일을 생략하면 패키지에 지정된 진입점을 사용합니다.
현재 지원
Topaz v5.6은 패키지 생성, 의존성 추가, 잠금, 벤더링, 오프라인 검사·실행·빌드를 지원합니다. 공개된 topaz-lang@5.6.0 npm 패키지는 현재 플랫폼에 맞는 Topaz CLI를 설치하며, Topaz 소스 의존성 형식과는 별개입니다.
제한 사항
패키지 모드는 모듈의 가시성, 순환 참조, 초기화 규칙을 완화하지 않습니다. 네트워크에서 자동으로 의존성을 가져오거나 신뢰하지 않으며, 오프라인 빌드는 필요한 파일이 미리 보존되어 있을 때만 성공합니다.
명령 예시
topaz init --root my-app
topaz add utility@1.2.0 --root my-app
topaz lock --root my-app
topaz vendor --root my-app --from ./registry
topaz check --root my-app --locked