2017-01-09 3 views
1

나는이 목적을 위해 peerDependencies을 사용하고 있습니다.하지만 충분하지 않다고 생각하거나 그렇지 않습니다. 예 : aurelia-logging.응용 프로그램에서 종속성의 단일 버전을 보장하는 방법

aurelia-logging을 사용하여 로깅을 수행하는 라이브러리를 만들었습니다.

정상적인 종속성에 대해서는 단지 dependencies으로 추가합니다. 그러나 aurelia-logging에는 모든 로거의 logLevel을 설정할 수있는 setLevel() 함수를 노출하도록 일부 전역 상태 (즉, 생성 된 모든 로거 저장)가 포함되어 있습니다.

이 전역 상태로 인해 최종 응용 프로그램은 작동하기 위해 aurelia-logging의 단일 버전을 사용해야합니다. 그렇지 않은 경우 일부 모듈에서 aurelia-logging의 다른 버전 (따라서 다른 인스턴스)을 사용할 수 있으며 setLevel() 함수가 올바르게 작동하지 않습니다.

라이브러리 작성자는 aurelia-loggingdependenciespeerDependencies으로 나열하고 있습니다.

내가 원했던 일을하겠습니까?

일반적인 상태는 일반적으로 좋지 않지만이 경우에는 다른 방법이없는 것처럼 보입니다.

+0

내 생각 엔'yarn'에서'flat' 모드를 지원해야합니다. 그 맞습니까? – unional

답변

0

내가 그것에 대해 더 많이 생각하기 때문에 해결책은 이러한 "전역 상태"를 저장하는 모듈 잠금 모듈을 갖는 것입니다.

면책 조항 : 가능한 한 전역 상태를 사용하지 않는 것이 좋습니다.

나는이 목적으로 https://github.com/unional/global-store을 만들었습니다.

면책 조항 다시 사용 : 올바른 작업을 수행하고 있음을 알고있는 경우에만 사용하십시오. README를 읽으십시오. :)

관련 문제