2014-02-10 2 views
2

Я столкнулся с проблемами в расширенном режиме оптимизации компилятора закрытия.Усовершенствованная оптимизация google закрытия

Мой код работал нормально, когда я использовал базовые оптимизации, но после того, как я удалил все предупреждения в расширенном режиме, он дает мне ошибки во внешних библиотечных файлах, таких как Kineticjs. Он не может найти методы во внешнем файле библиотеки (kinetic.js) или переименовал его во что-то еще в режиме расширенной компиляции.

Каковы соображения, которые я должен сделать, чтобы я мог двигаться вперед и прекратить закрытие, переименовывая методы в файл внешней библиотеки, особенно мне сложно отлаживать код в расширенном режиме.

мой конфигурационный файл как

{ 
    "id": "development", 
    "inputs": "src/js/application.js", 
    "paths": "src", 
    "output-file": "development-compiled.js", 
    "externs": "kinetic-externs.js", 
    "level": "VERBOSE", 
    "mode": "ADVANCED", 
    "optimize": "closure", 
    "closure": { 
     "CompilerOptions": { 
      "prettyPrint": true 
      } 
    } 
} 
+2

Файл экстернов есть, чтобы предотвратить компилятор от переименования вещи. Вы проверили, чтобы убедиться, что файл externs, который вы используете, имеет все функции, которые вы вызываете? Возможно, это было написано на основе более ранней версии библиотеки. – MatrixFrog

ответ

0

Используйте @export аннотаций:

@export kinectic 

и запустить его с --generate_exports флагом.

код, который использует @export аннотацию должен либо

  • включают закрытия/base.js или,

  • определяют как goog.exportSymbol и goog.exportProperty с тем же методом подписи в своей собственной кодовой базе.

Ссылки

Смежные вопросы