Сборка модулей
Google Closure Compiler умеет собирать javascript не в виде одного большого файла, а в виде нескольких модулей.
Так что все страницы могут грузить только один модуль, а дополнительная функциональность - загружаться лишь там, где она нужна.
Для такой сборки используется флаг компилятора --module .
Например:
java -jar compiler.jar --js src1.js --js src2.js --js src3.js --module
first:2 --module second:1:first
Создаст модули: first.js и second.js .
Первый модуль, который назван "first" , создан из объединенного и оптимизированного кода двух файлов: src1.js и src2.js (первые два параметра --js).
Второй модуль, который назван "second" , создан из src3.js - это следующий аргумент --js после включенных в первый модуль. Второй модуль зависит от первого.
Флаг --module second:1:first как раз и означает, что модуль second будет создан из одного файла после вошедших в предыдущий модуль (first ) и зависит от модуля first .
Пусть у нас есть следующие файлы.
main.js - основная библиотека
my = {}
my.main = function() {
alert('main')
}
hello.js - первый модуль
my.hello = function() {
my.main()
alert('hello')
}
bye.js - второй модуль
my.bye = function() {
my.main()
alert('bye')
}
hello и bye зависят от main .
Следующая команда соберет три модуля: first.js - основой модуль из main.js , second и third - из hello.js и bye.js соответственно.
java -jar compiler.jar --js main.js --js hello.js --js bye.js --module first:1 --module second:1:first --module third:1:first --compilation_level ADVANCED_OPTIMIZATIONS
Результат:
- first.js
my={};my.a=function(){alert("main")};
- second.js
my.c=function(){my.a();alert("hello")};
- third.js
my.b=function(){my.a();alert("bye")};
Этот пример демонстрирует самую важную фичу модулей, ради которой они и задумывались - сохранение связности переменованных переменных.
В частности - обратим внимание, функция my.main (main.js) была переименована в my.a , и именно в таком виде она вызывается в модулях second.js и third.js .
Разумеется, вы можете использовать много файлов для каждого из модулей.
Перечислять файлы --js нужно в том же порядке, в котором они зависят друг от друга.
Директива --module обрабатывается, буквально, так:
- --module first:1
- Создать модуль
first из первого файла в списке.
- --module second:1:first
- Взять следующий 1 файл из списка и создать из него модуль
second , зависящий от first .
- --module third:1:first
- Взять еще 1 файл из списка и создать из него модуль
third , зависящий от first .
При этом зависимость одного модуля от другого означает, что все символы будут переименованы синхронно. Это особенно важно при продвинутой оптимизации.
Есть одно ограничение - разные модули не могут содержать одни и те же файлы. То есть, не получится сделать два модуля, первый из которых включает в себя A.js и B.js , а второй - снова (нельзя) A.js и C.js .
Если вы используете goog.provide/require - компилятор при сборке обработает их и проверит все зависимости.
Как правило, такая сборка осуществляется утилитой calcdeps и описана в статье Система сборки и зависимостей Google Closure Library.
Флаг --module - основной, но есть еще несколько дополнительных.
-
--module_output_path_prefix
- Префикс для имен файлов для откомпилированных модулей, может включать в себя директорию. По умолчанию:
./
-
--module_wrapper
- Необязательный текст до или после модуля. Строка, в которой вместо текста модуля будет %s. Например:
--module_wrapper "/* copyright 2009-2010 */ %s"
Сборка модулей очень полезна, если некоторые из ваших страниц используют большое количество специфического javascript.
Например, у меня это страницы со сложными интерфейсами, такими что грузить их везде - совсем-совсем некошер. Думаю, что-то такое есть и у вас. Google Closure Compiler позволяет решить эту проблему.
Быстрых всем страничек
|
вот бы ссылку на живой пример реализации
так ведь я и сам могу поразбивать на модули и файлы и загружать их когда нужно - я так понял описывается пример автоматизированного ср-ва в большом проекте
Your blog contains a lot of interesting content, particularly the discussions. This is an excellent article. Continue your excellent work. Slope Unblocked is a jogging arcade game that provides a unique jogging experience. In the game's 3D running match-up, drive a ball. The gameplay is simple, fast, and addictive.
The following command will build three modules: first.js- base module from main.js, secondand third- from hello.jsand bye.jsrespectively. Just wondering if any of you knows where can I found a women's pullover crewneck sweatshirt? Thanks!
This unique game has garnered a lot of interest. You must tour the Playtime toy factory in poppy playtime . What happened to the missing employee is a mystery that needs to be solved. There are numerous toys available for retaliation. Make every effort to stay alive while avoiding capture.
о есть, не получится сделать два модуля, remodel contractor near me
I am grateful for the information and the suggestions that you have provided. eggy car
The first.js foundation module will be created from main.js, and the second and third modules will be created from hello.js and bye.js, respectively. | new braunfels house lifting
I appreciate the advice you have given and the information you have supplied. You can stop by the game getting over it
Along with shooting, tank games are another aspect of action games that are frequently observed and discussed. Because of this, players are becoming more and more interested in the tank game rocket bot royale. In this game, you will maneuver your tank across an island while battling the bad guys.
Thank you for sharing this informative article. I am very interested in the information you have shared. free games
Experience the thrill of being a modern-day gold prospector in Gold Miner, where cutting-edge technology meets the age-old quest for wealth and adventure, allowing you to employ state-of-the-art machinery, explosives, and power-ups to extract gold from the depths like never before.
Так что все страницы могут грузить только один модуль, а дополнительная функциональность - загружаться лишь там, где она нужна.
detroit michigan drywall plaster
Разумеется, вы можете использовать много файлов для каждого из модулей.
foundation repair in miami fl
The use of the --module flag in the word finder compiler simplifies the creation and management of these modules. This feature is particularly useful when dealing with complex codebases with interdependencies between different parts of the code.
6d lotto result Here are the PCSO lotto result today. These include the results of 6/58, 6/55, 6/49, 6/45, 6/42, 6D, 4D, Swertres (3D), EZ2 (2D) and STL.
It is quite okay to use numerous files for each individual module. geometry dash
я понял, как работает компилятор JavaScript. Я ценю информацию, которой вы делитесь. eggy car
If you've been looking for a good relaxing and entertaining game as much lately, this might be of help to you! Online Games
If you've been searching for a relaxing and entertaining game recently, this might be just what you need. geometry dash meltdown
Whether you're racing against friends or competing against the computer, duck life game provides endless opportunities for excitement and friendly competition. So grab your virtual duckling, lace up your racing shoes, and get ready for the ultimate duck racing experience!
Gracias por traer muchas buenas ideas, Geometry Dash apkclasico, es un juego que trae muchas cosas interesantes para jugar.
those are great shares, see more at xiaomi csengohangok
This game provides an incredibly detailed driving environment, focusing on realistic vehicle behavior. In beamngdrives.com , players can experiment with different cars and terrains. The primary goal is to master the intricacies of driving and enjoy the realistic simulation of crashes and stunts.
How many five-star recruits can you land in one season? The recruiting game is fierce in Retro Bowl College. Can you outsmart your rivals and build a powerhouse team?
In https://onemillioncheckboxesgame.com , your mission is simple: check as many boxes as possible. The real challenge, however, is staying focused as the grid continues to expand, requiring ever more concentration and patience.
You’ve been punished for poor grades and are now stuck at home under the watchful eyes of your parents. But you’re determined to escape the confines of your house. Your objective is to sneak around undetected in schoolboy runaway . You must carefully navigate through various rooms while avoiding your vigilant mother and father. Stealth and quick thinking are vital as you plot your escape. Can you make it outside to enjoy some time with friends, or will your parents catch you in the act?
When encountering complex terrain such as steep slopes or tight corners, maintain a steady speed instead of accelerating suddenly to avoid flipping the car in Level Devil 2.
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.