0

나는 bower를 사용하여 최신 plovr를 체크 아웃하고 클로저를 프로젝트에 추가했습니다. 오류 또는 경고없이 advanced_compilation의 작품 폐쇄 - compiler.jar와 코드를 컴파일하는 동안, plovr을 사용하면 다음과 같은 오류를 제공합니다 : 사용새 폐쇄시 plovr 경고 .base()

내가 config.js에 폐쇄 라이브러리 설정 한
/closure/goog/ui/buttonrenderer.js:107: WARNING - goog.ui.ButtonRenderer.base is never defined 
var element = goog.ui.ButtonRenderer.base(this, 'createDom', button); 
^ 
/closure/goog/ui/menu.js:425: WARNING - goog.ui.Menu.base is never defined 
var handled = goog.ui.Menu.base(this, 'handleKeyEventInternal', e); 
^ 
/closure/goog/ui/menu.js:447: WARNING - goog.ui.Menu.base is never defined 
goog.ui.Menu.base(this, 'setHighlightedIndex', index); 
^ 
/closure/goog/ui/select.js:61: WARNING - goog.ui.Select.base is never defined 
goog.ui.Select.base(this, 'constructor', 
^ 
/closure/goog/ui/select.js:142: WARNING - goog.ui.Select.base is never defined 
goog.ui.Select.base(this, 'handleMenuAction', e); 
^ 

"closure-library": "bower_components/closure-library/closure/goog/", 

이 문제를 해결할 방법이 있습니까?

답변

2

업데이트 된 라이브러리가 부실 컴파일러 릴리스와 함께 사용될 때 발생하는 불일치입니다 (Plovr은 컴파일러 릴리스를 처리하는 것으로 알려져 있음). 이 특별한 경고는 약 .base은 Plovr에 번들로 제공되는 컴파일러 릴리스에서 지원되지 않습니다. .basegoog.basesuperClass_ 속성 대신 상속을 표현할 때 엄격한 ES5 규격 (no poking arguments.callee)을 준수하기 위해 도입되었습니다. 여기

은 몇 가지 옵션이 있습니다 :

  • 이 Plovr

  • 잡아 Plovr's source와 함께 번들로 폐쇄 라이브러리를 사용;

  • Medium 팀이 최근 폐쇄 컴파일러 출시에 맞춰 더 자신의 Plovr fork을 유지 (나는 개인적으로이 최근에 시도하지 않은) 폐쇄 컴파일러를 교체하고 ant build으로 구축 할 수 있습니다. 노드 환경에 있기 때문에 NPM : npm install plovr --save-dev (업데이트 된 바닐라 라이브러리 체크 아웃과 함께이 포크를 개인적으로 사용합니다)