Browserify 인 jQuery 또는 녹아웃 같은 공용 라이브러리의 확장자를 포함하는 가장 좋은 방법은 무엇입니까?브라우저에서 확장 기능을 요구하는 올바른 방법
예를 들어 knockout-switch-case
과 같은 프로젝트에서 전역 ko
(변수) 변수는 모듈 정의 호출에 전달되지 않습니다.
녹아웃 스위치의 경우에 대한 AMD의 코드는 다음과 같습니다
이ko
(녹아웃)을 기대
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['knockout'], factory);
} else {
// Browser globals
factory(root.ko);
}
}(this, function(ko) {
는 일반적으로 window
을 할 수 있지만, Browserify를 사용하는 경우가 Object {}
인 것이다, root
의 세계로 .
는이 같은 뭔가 browserify-shim
를 사용하여 예제를 시도했지만, 예상대로 (그것이 더 나은 모듈 춤을 가지고 knockout-mapping위한 작업 않았지만)가 작동하지 않았다 : 내가 느끼는
knockout:
path: VENDOR_PATH + '/knockout.js'
exports: 'ko'
depends:
jquery: '$'
을 jQuery, Knockout 또는 전역에 의존하는 라이브러리를위한 다른 확장을 포함하는 모듈 정의 패턴이 상당히 일반적 일 것이라고 기대하면서 분명해야 할 사항을 간과해야합니다. 또는 이것은 아마도 무언가에 상당히 특정한 문제입니다. 녹아웃 스위치 케이스이 (가) 수행 중입니다.
어쨌든 생각과 의견은 진심으로 감사드립니다.
을 당신은'녹아웃 스위치 - case'하지 KO 그래서 자신을 심은 필요 다음과 같이 시도하십시오. shim (browserify(), { 'knockout-switch-case': { 경로 : './js/vendor/knockout-switch-case.js' , 내보내기 : null , 의존 함 : {녹아웃 : 'ko'} } })' – nemesv