2

Нужно ли кому-либо поделиться файлом для определения extern для dojo и dgrid?закрытие компилятора для инструментария Dojo и dgrid

Я пытаюсь включить их в свой проект clojurescript и использовать даже «простой» вариант оптимизации компилятора clsure.

На данный момент я нашел инструментарий dgrid и dojo, несовместимый с процессом компиляции Clojurescript. Другими словами, это не представляется возможным а) включают в додзе или dgrid с: вариант внешней ЛИЭС, а затем использовать в закрытия компилятор для создания «уменьшенная релиз с помощью закрывающего компилятора: продвинутый или даже: простой вариант

б) также невозможно включить библиотеки dojo или dgrid с: extern option , потому что для этого нужно создать список определений extern (которые не входят в выпуски dojo/dgrid).

Я уверен, что вариант (a) является тупиковым, потому что для его работы команда dojo должна внести изменения в набор инструментов, и это, вероятно, низкий приоритет. Я прочитал 50-страничный документ Стивена Чунга о том, как модифицировать додзё для работы с закрытием google, но он намного превосходит мои возможности для повторного внедрения Dojo 1.9 и выше.

Я думаю (b) может в конечном итоге работать, но для этого мне нужно найти библиотеку externs. Надеясь, что кто-то сделал это для доджо 1.9 и последнего dgrid.

До размещения здесь я проверил хранилище имеющихся в настоящее время «экстернов» для закрытия компилятора, и додзё не существует https://code.google.com/p/closure-compiler/source/browse/#git%2Fcontrib%2Fexterns

Я также нашел онлайн экстрактор экстернов http://www.dotnetwise.com/Code/Externs/index.html

и http://www.dotkam.com/2013/07/15/clojurescript-use-any-javascript-library/

Тем не менее, я даже не уверен, что dgrid/dojo-файлы для этого.

Поэтому, если кто-нибудь уже создал эти внешние элементы.

ответ

0

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

0

Я не знаком с dojo/dgrid в ClojureScript, но я уже использовал несколько библиотек javascript с ClojureScript.

Лучший способ использовать сложные библиотеки с ClojureScript - это просто не трогать их и не запускать Google Closure на них. (что вы называете (б)). Поэтому в externs.js вам нужно будет установить очень мало определений externs. Только для определенных варов/функций, которые вы получаете из своего кода ClojureScript. Вам не нужны externs.js для ВСЕГО, которые они объявляют. Компилятор Google Closure будет работать только на вашем коде, а не на внешней js-библиотеке. Вам нужно поставить externs только тогда, когда вы: 1. Вызовите функцию cljs из js-кода (чтобы не называть имя функции munged, которое не то, что у вас есть в js) 2. Вызвать функцию js library из вашего кода cljs (чтобы избежать перебора имени функции в вызове функции).

Итак, нет предварительной работы, которую нужно выполнить, вам нужно поместить небольшой файл externs именно для конкретных вызовов, которые вы совершаете.

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