@growthbook/growthbook을(를) 1.x에서 2.x로 업그레이드하기
@growthbook/growthbook 1.8.0과 2.0.0의 공개 API를 TypeScript 타입에서 자동으로 비교한 결과입니다. 시그니처 변경은 호환성이 깨질 가능성이 있다는 뜻이며 확정은 아닙니다.
요약
| 삭제된 import 경로 | 0 |
|---|---|
| 삭제된 export | 0 |
| 변경된 시그니처 | 8 |
| 삭제된 클래스·인터페이스 멤버 | 0 |
| 변경된 클래스·인터페이스 멤버 | 1 |
| 새로 지원 중단됨 | 0 |
| 요구 사항 변경 (engines, peer 의존성) | 0 |
| 새 export | 26 |
삭제된 export
감지되지 않았습니다.
변경된 시그니처
| export | 이전 | 이후 |
|---|---|---|
@growthbook/growthbook · Context | { enabled?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlRedirectExperiments?: boolean | undefine… | { enabled?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlR… |
@growthbook/growthbook · Options | { enabled?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlRedirectExperiments?: boolean | undefine… | { enabled?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlR… |
@growthbook/growthbook · UserContext | { enabled?: boolean | undefined; qaMode?: boolean | undefined; enableDevMode?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; blockedChangeIds?: string[] | undefined; stickyBucketAssignmentDocs?: Record<string, StickyAssignmentsDocument> | undefined; saveStickyBucketAssignmentDoc?: ((doc: StickyAssignmentsDocument) => Promise<unknown>) | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; trackingCallback?: TrackingCallback | undefined; onFeatureUs… | { enabled?: boolean | undefined; qaMode?: boolean | undefined; enableDevMode?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; blockedChangeIds?: string[] | undefined; stickyBucketAssignmentDocs?: Record<string, StickyAssignmentsDocument> | undefined; saveStickyBucketAssignmentDoc?: ((doc: StickyAssignmentsDocument) => Promise<unknown>) | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; trackingCallback?: Tr… |
@growthbook/growthbook · evalCondition | (obj: TestedObj, condition: ConditionInterface, savedGroups?: SavedGroupsPayload | undefined, visited?: Set<string> | undefined): boolean | (obj: TestedObj, condition: ConditionInterface, options?: EvalConditionOptions | undefined): boolean |
@growthbook/growthbook · AutoExperiment | Experiment<T> & { changeId?: string | undefined; manual?: boolean | undefined; } | Experiment<T> & { changeId?: string | undefined; manual?: boolean | undefined; metadata?: PayloadMetadata | undefined; contextualBanditRef?: string | undefined; } |
@growthbook/growthbook · GrowthBookPayload | { features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; } | { features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; interleavings?: InterleavingDefinitions | undefined; encryptedInterleavings?: string | undefined; } |
@growthbook/growthbook · FeatureApiResponse | { features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; } | { features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; interleavings?: InterleavingDefinitions | undefined; encryptedInterleavings?: string | undefined; } |
@growthbook/growthbook · SavedGroupPayloadEntry | { type: "list"; attributeKey: string; values: (string | number)[]; } | { type: "condition"; condition: ConditionInterface; } | { type: "list"; attributeKey: string; values: (string | number)[]; } | { type: "condition"; condition: ConditionInterface; } | { type: "remote"; attributeKey: string; valuesFrom?: string | undefined; } |
삭제된 클래스·인터페이스 멤버
감지되지 않았습니다.
변경된 클래스·인터페이스 멤버
| member | 이전 | 이후 |
|---|---|---|
GrowthBook.getAttributes | (): { [x: string]: any; } | (): Attributes |
새로 지원 중단됨
감지되지 않았습니다.
요구 사항 변경 (engines, peer 의존성)
감지되지 않았습니다.
새 export (26)
| import | export | kind |
|---|---|---|
@growthbook/growthbook | redisResolver | function |
@growthbook/growthbook | PayloadFilters | type |
@growthbook/growthbook | RedisSetClient | type |
@growthbook/growthbook | pruneCondition | function |
@growthbook/growthbook | PayloadMetadata | type |
@growthbook/growthbook | RemoteSavedGroup | type |
@growthbook/growthbook | SavedGroupResolver | type |
@growthbook/growthbook | EvalConditionOptions | type |
@growthbook/growthbook | ReducePayloadOptions | type |
@growthbook/growthbook | TypeMismatchCallback | type |
@growthbook/growthbook | getRemoteSavedGroups | function |
@growthbook/growthbook | ConditionTypeMismatch | type |
@growthbook/growthbook | resolveRemoteGroupIds | function |
@growthbook/growthbook | InterleavingDefinition | type |
@growthbook/growthbook | InterleavingDefinitions | type |
@growthbook/growthbook | REMOTE_GROUP_IDS_ATTRIBUTE | variable |
@growthbook/growthbook/plugins | interleave | function |
@growthbook/growthbook/plugins | InterleavedItem | type |
@growthbook/growthbook/plugins | InterleaveConfig | type |
@growthbook/growthbook/plugins | InterleaveResult | type |
@growthbook/growthbook/plugins | interleavePlugin | function |
@growthbook/growthbook/plugins | InterleaveOptions | type |
@growthbook/growthbook/plugins | InterleaveExposure | type |
@growthbook/growthbook/plugins | InterleavePluginOptions | type |
@growthbook/growthbook/plugins | InterleaveTrackingProps | type |
@growthbook/growthbook/plugins | EVENT_INTERLEAVE_EXPOSURE | variable |
이 데이터를 AI 에이전트에 제공하세요
Vigia는 무료 MCP 서버입니다. 코딩 에이전트가 코드를 작성하기 전에 버전, 호환성을 깨는 변경, 취약점을 확인합니다. 가입도 API 키도 필요 없습니다.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Cursor에 추가VS Code에 추가★ GitHub에서 스타 누르기
그 밖의 MCP 클라이언트
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }에이전트 스킬(SKILL.md): 에이전트에게 Vigia를 언제 쓸지 알려 줍니다 · 풀 리퀘스트용 GitHub Action
자주 묻는 질문
@growthbook/growthbook을(를) 1에서 2(으)로 업그레이드할 때 호환성이 깨지는 변경은 무엇인가요?
@growthbook/growthbook 1.8.0과 2.0.0 사이에서 Vigia는 삭제된 export 0개, 변경된 시그니처 8개, 삭제되거나 변경된 클래스·인터페이스 멤버 1개를 찾았습니다.
@growthbook/growthbook 2에서 지원 중단된 것은 무엇인가요?
@growthbook/growthbook 2.0.0에서 export 또는 멤버 0개가 새로 지원 중단으로 표시되었습니다.
에이전트용
GET https://vigia.coredls.cloud/v1/packages/npm/@growthbook/growthbook/upgrade?from=1.8.0&to=2.0.0