2015-02-05 6 views
2

я использую RequireJs Optimizer объединить все модули в одном файле - app.jsМогу ли я комбинировать RequireJs модули и require.js себя в один JS-пачке

На производстве у меня есть два JS файлы: app.js и require.js

Производство HTML имеет следующий сценарий тег:

<script data-main="app.js" src="require.js"></script> 

Это приведет к двум запросам для JS-файлов при запуске.

Вопрос: возможно ли комбинировать все, включая , все модули и require.js самостоятельно в один файл, поэтому у меня есть только один запрос при запуске?

+0

возможно дубликат [Путь к расслоению require.js источника с main.js] (http://stackoverflow.com/questions/19625581/way-to-bundle-require-js-source-with-main -js) – Louis

ответ

1

Ответ здесь http://requirejs.org/docs/optimization.html#onejs

я должен был включать в себя require.js через 'включить' r.js вариант.

С глотком задачей и глотком-requirejs это выглядит следующим образом:

requirejs({ 
    paths: { 
     requireLib: 'lib/require' 
    }, 
    include: ['requireLib'], 
    out: 'bundle.js' 
}) 
.pipe(insert.append('require(["app"]);')) 

Уведомления мне пришлось приложить require(["app"]) к концу JS-расслоение запустить главный модуль.

Теперь я могу ссылаться только на «bundle.js» на странице и получить один запрос.

<script type="text/javascript" src="bundle.js"></script> 
2

AlmondJS походит на хорошую подгонку, фрагменты из их документации:

A AMD загрузчика замены для RequireJS. Он обеспечивает минимальный размер интерфейса API API API , который включает поддержку плагинов загрузчика. Используется только для встроенных модулей AMD, не выполняет динамическую загрузку.

...

Включив миндаль в застроенной файл, нет необходимости в RequireJS. миндаль составляет около 1 килобайта при его минировании с помощью компилятора Closure и gzipped.

Например

node r.js -o baseUrl=. name=path/to/almond include=main out=main-built.js wrap=true 

Выведет что-то вроде этого:

(function() { 
    //almond will be here 
    //main and its nested dependencies will be here 
}()); 

Правда, я не использовал его, но я слышал о нем.

+1

Спасибо за совет, но я понял, что он выполним с Optimizer Optimizer, просто добавив require.js lib через опцию 'include'. Я потратил некоторое время на чтение документов AlmondJS, и это выглядит довольно мило. Я решил вернуться к нему позже. – Artin

+0

Не беспокойтесь, рад, что вы нашли хорошее решение. –

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

  • Нет связанных вопросов^_^