bower
과 함께 복잡한 구조적 문제가 있습니다. JS 코드가 포함 된 동적 위젯을 사용하여 페이지를 만드는 온라인 플랫폼을 구축하고 있습니다. 위젯은 미리 정의 된 형식, 설명, 아이콘 등을 가지며 apk, war, jar, ear의 프런트 엔드 코드와 같은 아카이브에 패키지됩니다. 사용자는 웹 사이트가 이미 배포되었을 때 위젯을 동적으로 추가 할 수 있습니다.자동화 된 방식으로 여러 bower.json 종속성 병합
우리는 bower
을 사용하고 있으며 문제는 다음과 같습니다. 위젯은 또한 bower
의존성을 지정할 수 있어야합니다.
단순화 된 디렉토리 레이아웃은 다음과 같다 :
- bower.json
- gulpfile.js # 모든 위젯
- 위젯에서 우리 자신의 deps + deps
- 위젯 1 # 여기에서 어떤 이름도 가능합니다.
- 위젯 2
- 위젯 랜덤 레이아웃 상기 위젯의 각
- 다른 위젯 - # 1 (종속성리스트만을 포함하거나 dependencies.json 같은 단순화 된 버전) 동일한
- bower.json이다.
- 많은 다른 파일
위젯 bower.json 다른 위젯에서 모든 deps과 통합해야 업로드되면, gulp build
실행하고 모든 것을 다시 작성됩니다.
모든 bower.json을 어떻게 하나로 병합합니까? 특히 동일한 의존성이 두 번있을 때. 하나의 위젯은 "jquery": "<=2.1.0"
에 의존하고 다른 위젯은 "jquery": "^2.1.0"
에 의존합니다. 둘 다 호환되지만 bower.json에서 어떤 문자열을 씁니 까? 이 두 글자를 쓰면 초를 사용하여 최신 jquery를 설치합니다. 2.1.1
은 이미 첫 번째 위젯과 호환되지 않습니다. 그리고 그것은 더 간단한 사용 사례입니다.
예를 들어 <=
과 같이 가능한 모든 semver 스펙 변형이 없을 것이라고 가정 할 수 있습니다. 위젯 작성자가 내 자신의 종속성 사양을 사용하도록 할 수도 있지만이를 설계하는 방법을 생각할 수는 없습니다.
도움을 주시면 감사하겠습니다.
위젯 종속성 해결을 위해 접근하는 다른 접근은 허용되지만 참고 : 은 런타임에 여러 위젯이로드되기 때문에 자신의 버전의 libs가 될 수 없습니다. 한 번에 두 개의 jquery를 가질 수는 없습니다. 예를 들어 두 위젯이 위의 예제 에서처럼 스펙을 사용하기 때문입니다.
UPD : 저는 RequireJS에 대해 알고 있으며 실제로 사용하고 있습니다. 하지만 먼저 의존성 자체를 다운로드해야하므로 나중에 RequreJS와 함께 사용할 수 있습니다.
저는 강요가 처음입니다. 우리가 유익을 얻을 수 있도록 예를 들어 자세하게 설명해주십시오. 감사! – pankajt
해결책은 각 위젯이 bower 패키지 자체라는 것입니다. 메인 프로젝트의 bower.json은 각 위젯에 의존합니다. –
주 프로젝트에서 동적으로 위젯을 선택할 수 있습니다. 매번 – pankajt