Еще один вариант: https://github.com/stefanhaustein/expressionparser
Я применил это, чтобы иметь простой, но гибкий вариант, позволяющий обоим:
Связанный выше TreeBuilder является частью демонстрационного пакета CAS , который выполняет символический вывод. Существует также пример BASIC-интерпретатора , и я начал использовать интерпретатор TypeScript , используя его.
Я рекомендую использовать Муравья Apache и Компрессор YUI.
http://yui.github.com/yuicompressor/
Помещенный что-то вроде этого в Муравья создает xml. Это создаст два файла, application.js и приложение-min.js.
<target name="concatenate" description="Concatenate all js files">
<concat destfile="build/application.js">
<fileset dir="src/js" includes="*.js" />
</concat>
</target>
<target name="compress" depends="concatenate" description="Compress application.js to application-min.js">
<apply executable="java" parallel="false">
<filelist dir="build" files="application.js" />
<arg line="-jar" />
<arg path="path/to/yuicompressor-2.4.2.jar" />
<srcfile />
<arg line="-o" />
<mapper type="glob" from="*.js" to="build/*-min.js" />
<targetfile />
</apply>
</target>
Для копирования без EOF используют режим двоичного счета:
copy /B *.js compiled.js /Y
, Если получающийся файл все еще имеет EOFs, который, возможно, прибыл из одного из исходных файлов, он может быть зафиксирован этим вариантом:
copy /A *.js compiled.js /B /Y
А удаляет запаздывание EOFs из исходных файлов, если кто-либо и/B предотвращают добавление EOF в получающийся файл. Если EOF не будет в конце, исходный файл будет усеченным в нем. Порядок переключателей важен. Если Вы запишете
copy /A *.js /B compiled.js /Y
- то EOFs в исходных файлах не будет удален, но все еще заканчивающийся, EOF не будет добавлен.
Попытка это самостоятельно, это - то, где я получаю его. Команды DOS являются странными.
Я буду второй yuicompressor, но я использую / упаковщика /
, Это было действительно превосходно для меня.
Мы создали механизм, состоящий из следующих частей:
Это может быть слишком много для Ваших потребностей, но для ответа на вопрос, что делают другие вот то, как это работает:
Все это разбито в отдельных сервисах. Существует сервис кэша, введенный в jsminificationwriter сервисе. Это использует исходный minificationservice, который только заботится о правилах минификации.
то, Что хорошо в этом подходе:
Hope это помогает. Я могу отправить некоторые фрагменты кода для иллюстрирования его больше, если Вам нравится.
В asp.net AJAX вы можете использовать тег 'CompositeScript'. Это скомбинирует все ваши скрипты в 1 большой файл js, сэкономив пропускную способность за счет уменьшения количества http 304 и, возможно, http 401.
Пример:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/Scripts/Script1.js" />
<asp:ScriptReference Path="~/Scripts/Script2.js" />
<asp:ScriptReference Path="~/Scripts/Script3.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>
Для получения дополнительной информации см. Здесь: http://msdn.microsoft.com/en-us/library/cc488552.aspx