2015-02-01 4 views
1

JS 라이브러리를 작성하고 require 호출로 연결된 CommonJS 모듈의 계층 구조에서 코드를 구성하고 있습니다. 그런 다음 외부 종속성 (예 : Underscore)도 있습니다.CommonJS 모듈을 단일 UMD 라이브러리 파일로 묶는 방법은 무엇입니까?

내 라이브러리 모듈을 모두 require으로 유지해야하는 외부 종속성을 제외하고 단일 파일 (CommonJS + AMD)로 묶을 수 있습니까?

내가 Browserify 실험 및 --standalone--external하지만 함께 듯했으나, 한가 번들로 LIB 내부에 남아있는 require 전화와 혼동 도착이 번들 라이브러리를 사용하는 응용 프로그램에 다시 Browserify를 사용하는 경우. Derequire와 같은 것을 제거하면 외부 종속성에 대한 호출 인 require도 제거됩니다.

다른 라이브러리에서이 방법에 접근하는 방법을 알아 내려했지만 대부분 사용자 지정 연결 스크립트가있는 것 같습니다. 더 간단한 해결책이 있습니까? 공통된 사용 사례 여야합니다.

+0

GitHub 또는 plnkr과 같은 파일을 사용하여 최소한의 테스트 케이스를 만들 수 있습니까? 또한, 어떤 버전의 browserify? – JMM

답변

0

독립형 및 외부 용으로 이미 수행중인 작업을 시도한 다음 두 번째 번들을 번들 할 때 noParse 옵션을 브라우저 화 (예 : browserify({noParse: ['/abs/path/to/first/bundle']}))하십시오. 또는 첫 번째 번들을 축소 할 수도 있습니다. this answer도 참조하십시오.

+0

문제는 (lib의) 첫 번들링은 내부 의존성 만 해결해야한다는 것입니다. 저는 광산에서 구운 외부 라이브러리를 원하지 않습니다. 그런 다음 전체 앱이 번들 될 때 lib에 여전히 종속성이 있으므로 해결해야합니다. – estolua

+0

라이브러리와 앱이 외부 종속성으로 언더 스코어를 가지고 있으며 별도로 전체적으로 번들로 제공되는 경우 (모든 요구 사항을 해결해야 함) 밑줄 코드가 두 번 포함 된 번들로 끝납니다. – estolua

+0

나는 당신이하려는 일에 대해 혼란스러워합니다. "라이브러리와 앱이 외부 종속성으로 밑줄을 긋는다면 ... 밑줄 코드가 두 번 포함 된 번들로 끝날 것입니다." 아니, 밑줄 코드가 0 번 포함 된 번들로 끝납니다. 밑줄은 어디에서 오는 것이 좋습니까? 어느 번들에 있어야하나요? 그렇지 않다면 어떻게로드 할 생각입니까? – JMM

관련 문제