Моя страница включает в себя несколько компонентов, которые существуют как отдельные модули AMD. Каждый из этих компонентов преобразуется оптимизатором Require.js в отдельный файл. Поскольку некоторые из этих компонентов имеют общие зависимости (например, jQuery и d3), конфигурация оптимизатора paths
использует URL-адреса CDN для этих зависимостей, а не объединяет их в оптимизированный файл.
Вот где это становится сложно. Я написал плагин загрузчика модулей для Ractive.js. с именем rvc.js, что позволяет мне включать компоненты Ractive, определенные в файлах HTML. (Да, я прошу помощи в том, как использовать мою собственную библиотеку.)
Это прекрасно работает — такой код оптимизируется, как и следовало ожидать:
define( function ( require ) {
var ChartView = require( 'rvc!views/Chart' );
var view = new ChartView({ el: 'chart' });
});
Поскольку Ractive используется несколькими компонентами, его следует обслуживать из CDN, такой как jQuery и d3. Но он используется rvc.js в процессе оптимизации, а это означает, что запись Ractive
для конфигурации paths
оптимизатора не может указывать на CDN — она должна указывать на локальный файл.
Есть ли способ указать Require.js «использовать локальный файл во время оптимизации, но загружать из CDN во время выполнения»?
fileToUse
ни было присвоено оптимизатору, это одновременно а) файл, используемый во время оптимизации, и б) файл, который оптимизатор включает (или пытается) в сборку. Таким образом, еслиfileToUse
является локальным, локальный файл используется rvc.js во время оптимизации, но он также объединяется; если он удален, оптимизация не удалась. - person Rich Harris   schedule 26.02.2014