Как объединить скрипты в один файл
Как объединить файлы JavaScript в один файл?
Я хочу создать скомпилированный файл JavaScript для моего сайта. Для разработки я бы предпочел сохранить JavaScript в отдельных файлах и просто как часть моих автоматических скриптов объединить файлы в один и запустить компрессор над ним.
моя проблема в том, что если я использую старую команду копирования DOS, она также помещает маркеры EOF, на которые жалуется компрессор:
копировать /A *.в JS компилировать.js / Y
Что делают другие люди?
9 ответов
Я рекомендую использовать Apache Ant и Yui компрессор.
http://ant.apache.org/
http://yui.github.com/yuicompressor/
Поместите что-то подобное в xml сборки Ant. Он создаст два файла, приложение.js и применение-мин.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>
35
автор: David Brockman
для копирования без EOF используйте двоичный режим:
copy /B *.js compiled.js /Y
Если результирующий файл все еще имеет доказательства, это может быть из одного из исходных файлов, это может быть исправлено этим вариантом:
copy /A *.js compiled.js /B /Y
/a удаляет конечные доказательства из исходных файлов, если таковые имеются, и / B предотвращает добавление EOF в результирующий файл. Если EOF не находится в конце, исходный файл будет усечен в нем. Порядок переключателей важен. Если вы пишете
copy /A *.js /B compiled.js /Y
- доказательства в исходных файлах не будет удален, но все равно результирующий EOF не будет добавлен.
попробуйте сами, вот где я его получу. Команды DOS странные.
In asp.net AJAX, вы можете использовать тег 'CompositeScript'. Это объединит все ваши скрипты в 1 большой JS-файл, экономя пропускную способность, уменьшая количество http 304s и, возможно, http 401s.
пример:
<asp:ScriptManager 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
установите компрессор uglifyjs на вашем компьютере:
sudo npm -g install uglify-js
затем следующую команду можно использовать для объединения и сжатия всех файлов js.
cat myAppDir/*.js | uglifyjs > build/application.js
мы создали механизм, состоящий из следующих частей:
- minfication (для js и css)
- агрегация в пакетах
- кэширование (http status 304 stuff)
- отправка оригинальных файлов в режиме разработки
Это может быть слишком много для ваших потребностей, но как ответить на ваш вопрос, что делают другие, вот как это работает:
- запрос приходит на, сказать, /стиль CSS.аспн?пакет=ядро
- мы делаем поиск имени пакета в файле конфигурации xml (который например, объявляет, что пакет "Базовый" содержит файлы /Яш/в MooTools.js и /Яш/swfobject.в JS)
- мы проверяем, включена ли минификация. Например, в среда разработки мы не хотите, чтобы уменьшенное содержимое js было подавали, но вместо этого пишут исходный файл. Для js это сделано документ.пишет сценарий включает, а для css пишем импорт правила.
- Если требуется минификация (в production env), мы проверяем заголовок if-modified-since из запроса. Если у этого клиента уже есть уменьшенное содержимое, мы отправляем HTTP-заголовок 304. Если клиенту требуется содержимое, мы проверяем, есть ли у нас уменьшенное содержимое в кэше и обслуживаем его. В противном случае мы минимизируем и отправляем результат.
все это разбито на отдельные службы. Существует служба кэша, введенная в службу jsminificationwriter. Это использует оригинальную minificationservice, которая исключительно заботится о правилах минификации.
Что приятно в этом подходе:
- это заставляет наши команды разработчиков думать в "пакетах" js/css и, следовательно, правильно разделять функциональность и распространять их по страницам, которые их требуют.
- во время разработки вы прекрасно можете отлаживать, получая правильные файлы и номера строк.
- вы можете подключить любой другой реализация услуг минификации, таких как YUI и так далее. JsMin был только нашим первым дублем.
- Это общий подход, который работает для разных типов контента.
надеюсь, что это помогает. Я могу опубликовать некоторые фрагменты кода, чтобы проиллюстрировать это больше, если хотите.
4
автор: Martin Kool
Это очень старый вопрос, но я хочу упомянуть, что есть также способы объединить javascript с помощью javascript! с nodejs, очевидно... Например, есть инструменты, опубликованные как модули npm, такие как этой а также грунт и залпом тоже Плагины.
Я также хочу упомянуть очень, очень интересный метод, который используется в огромных проектах, таких как jQuery и Modernizr. Оба проекта полностью разработаны с модулями requirejs, а затем они используют requirejs optimizer как очень умный concatenator. Интересно, что, как вы можете видеть, ни jQuery, ни Modernizr не нуждаются в requirejs для работы, и это происходит потому, что они стирают синтаксический ритуал requirejs, чтобы избавиться от requirejs в своем коде. Таким образом, они получают автономную библиотеку, которая была разработана с модулями requirejs!. Благодаря этому они могут выполнять сборки cutsom своих библиотек, среди прочего преимущества. здесь это сообщение в блоге, которое объясняет все это более подробно.
4
автор: Augusto Altman Quaranta
вы также можете сделать:
type *.js > compiled.js
вы также можете попробовать wro4j (оптимизатор веб-ресурсов для java), который может использоваться как инструмент сборки (плагин maven), решение во время выполнения (с помощью фильтра) или инструмент командной строки. Это позволяет легко держать ресурсы организованы и обрабатывать слияние для вас с помощью десятка компрессоров для ресурсов типов ботов: js и css.
определение ресурсов для слияния легко, как:
<groups xmlns="http://www.isdc.ro/wro"> <group name="all"> <css>/asset/*.css</css> <js>/asset/*.js</js> </group> </groups>
отказ от ответственности: я исполнитель этого проекта.
0
автор: Alex Objelean
Объединение JavaScript и CSS в одном файле / Хабр
Если Вы работали над оптимизацией загрузки страницы, Вы знаете, насколько дорогостоящая каждая загрузка ресурса. Чем больше число внешних ресурсов, к которым Вы обращаетесь, тем больше время требуется для загрузки страницы.Как правило, веб-страницы обращаются ко многим внешним CSS и файлам JS и следовательно подвергаются многим загрузкам ресурса. Совет от гуру оптимизации в необходимости объединить все файлы CSS и все до одного файлы JS, чтобы уменьшить число ресурсов до двух. Это, без сомнения, поможет сократить время загрузки страницы.
Если Вы все же считаете что эти две загрузки не являются лучшим решениям, я с Вами соглашусь. В этой статье мы рассмотрим способ объединения CSS с JS и сведем количество загрузок к одной. Я обнаружил этот способ, отчаянно пытаясь оптимизировать страницы в Microsoft Office Live
Техника основана на том как CSS и анализатор JS ведут себя в IE и Firefox.
• Когда анализатор CSS сталкивается с символом комментария HTML (
• Когда анализатор JS сталкивается с символом комментария HTML (
Рассмотрим на примере
<!-- /*
function t(){}
<!-- */
<!-- body { background-color: Aqua; }
Когда анализатор CSS будет разбирать вышеупомянутое код, символы комментария HTML будут пропущенны, и код станет эквивалентным коду ниже…
/*
function t(){}
*/
body { background-color: Aqua; }
Как Вы видите, анализатор CSS видит только код CSS, а код скрипта закомментирован (/*… */).
Когда анализатор JS станет разбирать код, символы комментария HTML будут интерпретированы в комментарии строки (//), и следовательно код станет таким…
// /*
function t(){}
// */
// body { background-color: Aqua; }
Как Вы видите анализатор JS видет только код скрипта, а все остальное закоментрованно.
Что бы ссылаться на этот ресурс можно использовать теги SCRIPT и LINK в вашей страницы. Например:
<link type=«text/css» rel=«stylesheet» href=«test.jscss» />
<script type=«text/javascript» language=«javascript» src=«test.jscss»></script>
Заметьте эти два тега ссылаются на один тот же ресурс и следовательно он загрузиться всего один раз, и будет интерпретирован и как стили и как скрипты.
И на последок, есть еще одна вещь, о которой Вы должны заботиться — content type ответа — необходимо ставить */* чтобы дать подтверждение Firefox, что содержание может быть обработано как что-либо подходящее.
Как Объединить Файлы Javascript В Один Файл?
Это очень старый вопрос, но я хочу упомянуть, что есть также способы конкатенации javascript с помощью javascript! с nodejs, очевидно... Например, есть инструменты, опубликованные как модули npm, такие как
this и есть grunt и gulp.
Я также хочу упомянуть очень, ОЧЕНЬ, интересную технику, которая используется в таких огромных проектах, как jQuery и Modernizr. Оба этих проекта полностью разработаны с помощью модулей requirejs, а затем они используют requirejs optimizer как очень умный конкатенатор. Интересно, что, как вы можете видеть, ни jQuery, ни Modernizr не нуждаются в требованиях, чтобы работать, и это происходит потому, что они стирают ритуал requirejs, чтобы избавиться от requirejs в их коде. Таким образом, у них есть отдельная библиотека, которая была разработана с помощью модулей requirejs!. Благодаря этому они могут выполнять вырезки своих библиотек и другие преимущества. Здесь - это сообщение в блоге, в котором все это объясняется более подробно.
Объединить несколько файлов JavaScript в один js-файл [закрыто]
я использую этот скрипт на Linux https://github.com/eloone/mergejs.
по сравнению с приведенными выше сценариями он имеет преимущества быть очень простым в использовании, и большим плюсом является то, что вы можете перечислить файлы js, которые вы хотите объединить во входном текстовом файле, а не в командной строке, поэтому ваш список является многоразовым, и вам не нужно вводить его каждый раз, когда вы хотите объединить свои файлы. Это очень удобно, так как вы будете повторять этот шаг каждый раз, когда вы хотите нажать на производство. Вы также можете комментировать файлы, которые не хотите объединять в списке. Командная строка, которую вы, скорее всего, наберете:
$ mergejs js_files_list.txt output.js
и если вы хотите также сжать полученный объединенный файл:
$ mergejs -c js_files_list.txt output.js
Это позволит создать output-min.js
minified компилятором закрытия Google. Или:
$ mergejs -c js_files_list.txt output.js output.minified.js
если вы хотите конкретное имя для вашего мини-файла с именем output.minified.js
Я считаю, что это действительно полезно для простого веб-сайта.
Подключение jquery из ядра битрикс и объединение своих скриптов в один файл
Добрый день,МихаилНужна Ваша помощь по Битриксу.
Попросили на сайте mediasmart.pro подправить боковое меню наподобие розетки. Дали доступ на тестовый сайт electrolopata.ru. Вчера утром поставил в шаблон файлы от Font-Awesome, сделал как положено - шрифты загрузил в fonts и в css закинул файл font-awesome.css с подключением этих шрифтов. Подключил файл font-awesome.css в хедере стандартным подключением
$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ; ?>
и тут началось. Слетели все стили сайта. Поотключал в главном модуле объединение стилей и js, отключил кеширование и все равно не могу использовать стилевой файл main.css в шаблоне. Все мои изменения битрикс не видит. Не могу понять. Такое ощущение, что битрикс main.css где-то закешированный лежит...
Не пойму, где его перезаписать.... Если я включаю снова в главном модуле объединение файлов, то сайт не видит стили вообще.
Буду очень признателен, если подскажете, куда глянуть или какой документ почитать.
Объединение HTML, CSS и JavaScript в одном файле. Разгони свой сайт
Читайте также
4.1. Объединение HTML- и CSS-файлов
4.1. Объединение HTML- и CSS-файлов Число запросов является наиболее узким местом при загрузке страницы. По последним исследованиям, порядка 40% времени загрузки уходит только на установление новых соединений с сервером. В этом свете любые методы, позволяющие уменьшить число
4.2. Объединение JavaScript-файлов
4.2. Объединение JavaScript-файлов Все внешние JavaScript-файлы с сайта можно слить в один большой, загружаемый только один раз и навсегда. Это очень удобно: браузер не делает тысячу запросов на сервер для отображения одной страницы, скорость загрузки резко повышается. А
Объединение JavaScript и CSS в одном файле
Объединение JavaScript и CSS в одном файле Однако существует способ объединения CSS с JavaScript и сведения количества загрузок к одной. Техника основана на том, как CSS и анализатор JavaScript ведут себя в IE и Firefox.Когда анализатор CSS сталкивается с символом комментария HTML (<!--) в содержании
Шаг третий: все-в-одном
Шаг третий: все-в-одном Можно использовать data:URI и внедрить все изображения в соответствующие HTML/CSS-файлы, уменьшив таким образом размер страницы (за счет gzip-сжатия, по большому счету, потому что таблица стилей перед этим не сжималась) еще на 15%, однако время загрузки при
Несколько заданий в одном файле
Несколько заданий в одном файле Каждое отдельное задание в WS-файле должно находиться внутри элементов <job> и </job>. В свою очередь, все элементы <job> являются дочерними элементами контейнера <package>.В качестве примера рассмотрим сценарий multijob.wsf, приведенный в
Совместное использование HTML и JavaScript
Совместное использование HTML и JavaScript Прежде всего надо рассмотреть тег <SCRIPT>. Этот тег служит для вставки скриптов в HTML-код страницы. Его формат:<SCRIPT [language="{Язык программирования, на котором написан скрипт}"] [src="{Адрес файла со скриптом}"]>. . . Текст скрипта</SCRIPT>Текст
Передача и обработка данных в html-файле
Передача и обработка данных в html-файле Передача данных в html-файл:Передачу данных в html-файл можно произвести через URL-адрес. После адреса ставиться знак вопроса и после него параметр, который Вы хотите передать. Если этих параметров несколько, то между ними ставиться
2.2 Что хранится в файле?
2.2 Что хранится в файле? Формат файла зависит от программ, которые используют его. Типы файла весьма разнообразны, возможно, потому, что существует большое разнообразие программ. Но, поскольку типы файла не определяются файловой системой, ядро не может указать вам тип
Установки в файле конфигурации
Установки в файле конфигурации Файл конфигурации Firebird, как обсуждалось ранее в этой главе, дает возможность выполнить установки по ограничению доступа к библиотекам внешних функций, модулей фильтров BLOB и К файлам данных, связанных с таблицами с помощью определения CREATE
Пример 33-5. Комбинирование сценария Bash и Perl в одном файле
Пример 33-5. Комбинирование сценария Bash и Perl в одном файле #!/bin/bash# bashandperl.shecho "Вас приветствует часть сценария, написанная на Bash."# Далее могут следовать другие команды Bash.exit 0# Конец сценария на Bash.# =======================================================#!/usr/bin/perl# Эта часть сценария должна вызываться с
5.7.5. Объединение выходных потоков в файле
5.7.5. Объединение выходных потоков в файле Оператор n>&m позволяет перенаправить файл с дескриптором n туда, куда направлен файл с дескриптором m. Подобных операторов в командной строке может быть несколько, в этом случае они вычисляются слева направо. Рассмотрим пример:$
13-я КОМНАТА: Две в одном
13-я КОМНАТА: Две в одном Люди готовы щедро платить за небольшую экономию и даже за потенциальную возможность таковой. Этот психологический нюанс давно используют маркетологи, и в компьютерной отрасли можно найти немало тому примеров. Например, если помните, главной
bash - Как объединить 2 скрипта в один
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
окон - Как объединить два пакетных сценария, поместить их в один пакетный файл и запустить их в порядке убывания
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся приват
javascript - Как объединить больше файлов JS в один файл в AngularJS?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- Реклама Обратитесь к разработчикам и технологам со всего мира
- О компании
Загрузка…
.скриптов - Bash; Как объединить несколько файлов в один
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами