Показать сообщение отдельно
  #14 (permalink)  
Старый 23.02.2013, 13:20
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

Реализовал функционал подмены адресов. Адрес модуля сверяется с таблицей и заменяется на другой.
Используя подмену можно в описании модуля ссылаться на глобальный адрес модуля, так как он более уникален, но в проекте использовать локальный источник.

небольшой пример http://vflash.ru/work/zztest/
вот json корневого модуля примера
{
	"modules":{"zzparser": "github:~/vflash/zzparser"},
	"scripts": ["./test.js"]
}


в HTML подключаем его через scmod - http://scmod.vflash.ru/sandbox?src=h...test/test.json
на страницу будут подключены три скрипта
1 - [url]http://scmod.vflash.ru/file/3/EasySAXParser/https/raw.github.com/vflash/easysax/master/easysax.js[/url]
2 - [url]http://scmod.vflash.ru/file/2/zzParser,EasySax/https/raw.github.com/vflash/zzparser/master/zzparser.js[/url]
3 - [url]http://scmod.vflash.ru/file/1/module,zzparser/http/vflash.ru/work/zztest/test.js[/url]


в данном случаи файлы двух модулей будут загружены из удаленного источника. Оба модуля расположены на github-е отчего загрузка файлов с него значительно медленнее чем могло быть с локального. Также нет возможности делать в них локальные правки.

используя подмену можно заменить глобальный адрес локальным.
для этого создал папку deps и туда клонировал два репозитория
git clone git://github.com/vflash/zzparser.git
git clone git://github.com/vflash/easysax.git
в этой же папке создал файл со списком подмен http://vflash.ru/work/zztest/deps/replace.json
{
	"replace": {
		"github:~/vflash/easysax": "./easysax/easysax.json",
		"github:~/vflash/zzparser": "./zzparser/zzparser.json"
	}
}


теперь в HTML подключаем наш модуль с указанием списка подмен http://scmod.vflash.ru/sandbox?rep=d...test/test.json
на страницу будут подключены три скрипта, но уже только с локального источника
1 - [url]http://scmod.vflash.ru/file/3/EasySAXParser/http/vflash.ru/work/zztest/deps/easysax/easysax.js[/url]
2 - [url]http://scmod.vflash.ru/file/2/zzParser,EasySax/http/vflash.ru/work/zztest/deps/zzparser/zzparser.js[/url]
3 - [url]http://scmod.vflash.ru/file/1/module,zzparser/http/vflash.ru/work/zztest/test.js[/url]



список подмен можно описать не только в отдельном файле но и в корневом модуле, свойство "replace".
дополнительно для scmod указываем rep=true - http://scmod.vflash.ru/sandbox?rep=t...test/test.json
{
	"modules":{"zzparser": "github:~/vflash/zzparser"},
	"scripts": ["./test.js"],

	"replace": {
		"github:~/vflash/easysax": "./deps/easysax/easysax.json",
		"github:~/vflash/zzparser": "./deps/zzparser/zzparser.json"
	}
}
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 14.03.2013 в 00:31.
Ответить с цитированием