Использование плагина storeinc для локального хранения и инкрементного обновления в RequireJS
Был написан плагин storeinc для RequireJS с использованием алгоритма инкрементного обновления. Метод использования следующий:
Сначала используйте модифицированный r.js для обфускации и упаковки, конфигурация сборки следующая (см. build.js в папке js/requirejs):
({ appDir: "../demo/js", baseUrl: "./", dir: "../demo/dist",// путь хранения файлов без инкрементных обновлений paths: { log: "a", storeinc:"../storeinc"// здесь плагин }, storeinc: true,// указывает на использование плагина storeinc storedir: "../demo/storeincdist",// путь сохранения обфусцированных файлов, включая инкрементальные файлы lastver:"2", // предыдущий номер версии, если не указано, что это первая упаковка ver:'3',// номер новой версии chunkSize:12,// размер блока инкрементного обновления modules: [ { name: "test", exclude: [ "log","b","c","d","storeinc" ] }, { name: "log", exclude: [ "storeinc" ] }, { name: "b", exclude: [ "storeinc","log" ] } ] })
Запустите команду node r.js -o build.js.
При первом запуске: lastver:"1", // предыдущий номер версии, если не указано, что это первая упаковка ver:'2',// номер новой версии.
Затем измените каждый исходный файл в каталоге js и при втором запуске: lastver:"2", // предыдущий номер версии, если не указано, что это первая упаковка ver:'3',// номер новой версии.
Далее добавьте следующий код в index.html (см. index.html в папке js/requirejs):
<script> // Конфигурация, связанная с storeinc var require = { ver:"3",// текущая версия storeproxy:false,// использовать ли прокси-сервер для расчёта инкрементного обновления paths: { storeinc: '../storeinc'// путь к плагину инкрементного обновления } }; </script>// Загрузка основного ресурса, обратите внимание на префикс storeinc! для включения плагина
<script data-main="storeincdist/storeinc!test" src="require.js"></script> <script type="text/javascript"> requirejs.config({ paths: { log: [`enter code here` 'a' ], b: [ 'b' ], c: [ 'c' ], d: [ 'd' ], e: [ 'e' ] } }); </script>Также необходимо добавить префикс storeinc! перед каждым зависимым файлом в бизнес-логике, например, в test.js:
require(['storeinc!log','storeinc!c','storeinc!d'], function (log, modC, modD) { log.write('test3 run!!'); log.write('module c's name is ' + modC.name); log.write('module d's name is ' + modD.name); });
Теперь посмотрим на эффект: Сначала мы устанавливаем значение ver в index.html равным 2, а затем открываем index.html. Мы обнаруживаем, что доступ осуществляется к test-2.js и другим файлам версии 2. Во второй раз мы устанавливаем значение ver в index.html равным 3, указывая, что на этот раз нам нужен контент версии 3. Мы обнаруживаем, что доступ осуществляется к файлу test-2_3.js. Это означает, что мы достигли цели инкрементного обновления.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )