Как автоматически генерировать экстерны для компилятора Google Closure

Предположим, вы работаете в проекте javascript с несколькими зависимостями внешних библиотек и хотите скомпилировать свои источники с помощью компилятора Google Closure в режиме ADVANCED_OPTIMIZATIONS.

Поскольку в этом режиме компилятор переименовывает вызовы вашего кода в объекты и функции внешних библиотек, необходимо указать externs, чтобы предотвратить это переименование.

Но создание externs вручную - это большая работа, поэтому как лучше всего автоматически сгенерировать соответствующий extern из данной библиотеки javascript?


person ivo    schedule 24.11.2010    source источник


Ответы (3)


См. Следующий URL-адрес в качестве отправной точки. Я также рекомендовал бы добавить информацию о типе в ваши внешние, чтобы максимизировать преимущества компилятора.

http://www.dotnetwise.com/Code/Externs/

person Derek Slager    schedule 30.11.2010

Многие проекты включают определения типов в стиле TypeScript (например, index.d.ts). Этот формат нельзя напрямую использовать в Closure Compiler, но я нашел этот инструмент для автоматического преобразования .d.ts во внешний.

https://www.npmjs.com/package/tsd2cce - конвертер для компилятора закрытия Google externs из файлов объявлений машинописного текста (.d.ts).

использование

npx tsd2cce declaration.d.ts create_extern.js

person phatpaul    schedule 19.03.2021

вы можете экспортировать свою функцию: window ['myFunc'] = myFunc;

подробнее здесь: http://code.google.com/closure/compiler/docs/api-tutorial3.html#no

если вам действительно нужны externs для библиотек, которые вы импортируете из другого места (например, служебные оболочки, jquery и т. д.), тогда вам нужно передать extern в. Если вы используете компилятор jar, вы указываете с помощью --externs, более подробно в ссылке выше

person steve    schedule 20.01.2011