Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.05.2012, 12:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Куда развитие? Свою задачу скрипт выполняет.
Есть одна вещь, которую можно было бы добавить. Как решу добавлять, так и отрефакторю.

Сообщение от B~Vladi
пока всё помнишь
Давно уже не помню. Я слишком много всего пишу, обычно через месяц свой код читаю, как чужой. Поэтому читабельность для меня важнее, чем, например, количество символов в названии функции.
Ответить с цитированием
  #12 (permalink)  
Старый 30.05.2012, 12:22
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Поэтому читабельность для меня важнее, чем, например, количество символов в названии функции.
Поддерживаю!
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #13 (permalink)  
Старый 28.01.2013, 23:55
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

продолжаю развивать это направление.
утилита функционально не выросла , но в качестве код подрос.

использую его в проекте wada.vn и в своем небольшом сервисе.

На практике большим плюсом стало то, что в модуле сразу описываю зависимости css-файлов.
Уже и забыл про ошибки на подобии случайной глобальной переменной. Или в каком-то файле не указал "use strict".

на будущее есть идея - собирать js не в один файл, а выделять общее для всех страниц ядро.


в общем получался простой и практичный инструмент.
исходник - https://github.com/vflash/scmod
npm - https://npmjs.org/package/scmod
демо - http://scmod.vflash.ru/sandbox?src=h...eedreader.json
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 14.03.2013 в 00:26.
Ответить с цитированием
  #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.
Ответить с цитированием
  #15 (permalink)  
Старый 18.06.2013, 18:18
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

добавлен функционал для работы из консоли.
после установки модуля доступны следующие команды

Код:
scmod-scripts -3 -lang=en ./side-zzreader/src/zzreader/feedreader.json
scmod-styles -3 ./side-zzreader/src/zzreader/feedreader.json
scmod-langs -for=en,ru,de ./side-zzreader/src/zzreader/feedreader.json
команда scmod-scripts - компилирует все скрипты в один файл
команда scmod-styles - компилирует все css-стили в один файл
команда scmod-langs - формирует список строк для локализации

параметр -for=SS задает ключи локализации для команды scmod-langs
параметр -lang=SS указывает ключ локализации для команды scmod-scripts
параметр -[1..9] задает адрес корневого каталога относительно указанного модуля
параметр -max выдача будет без сжатия кода
параметр -rep разрешает подмену адресов. матрица должна быть указанна в корневом модуле
параметр -rep=./deps/replace.json разрешает подмену адресов. матрица расположена в файле
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 18.06.2013 в 18:25.
Ответить с цитированием
  #16 (permalink)  
Старый 22.06.2013, 19:42
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

зачем 3 команды если всё это можно делать одной? а то и вообще можно делать пересборку при изменении файлов автоматом.
да и всякие "списки подмен" не мешало бы генерить автоматом.
есть ли загрузка css если загружен соответствующий js?
где сборщик шаблонов?
__________________
.ня
Ответить с цитированием
  #17 (permalink)  
Старый 23.06.2013, 02:40
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

Сообщение от tenshi
зачем 3 команды если всё это можно делать одной? а то и вообще можно делать пересборку при изменении файлов автоматом.
по сути там один скрипт. просто так сделано.
консольные команды нужны для публикации. для разработки используется веб-сервис, он формирует sandbox по запросу.

Сообщение от tenshi
да и всякие "списки подмен" не мешало бы генерить автоматом.
можно. но это нужно писать, а время на это нет. я сам пока-что в практике подменой не пользовался по полной.

Сообщение от tenshi
есть ли загрузка css если загружен соответствующий js?
для публикации все зависимые js собираются в один файл . тоже самое с css.
сейчас пока только такая модель, для многих проектов этого достаточно.
хочу в будущем реализовать и другие модели, но пока обдумываю как лучше делать и какую.

Сообщение от tenshi
где сборщик шаблонов?
нету. шаблонизаторов полно, все не реализуешь.
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #18 (permalink)  
Старый 23.06.2013, 04:36
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Зачем так делать? Это же одна операция - сборка ассетов.

Зачем она тогда вообще нужна? о0

Ну это понятно. То есть каждый файл нужно подключать вручную?

А все и не надо. Ты же не поддерживаешь всякие cofeescript и sass? Как ты сейчас обходишься с шаблонами? Гвоздями прибиваешь в JS? Грузишь в HTML? Ходишь на сервер чтобы что-нибудь отрендерить?
__________________
.ня
Ответить с цитированием
  #19 (permalink)  
Старый 23.06.2013, 09:53
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

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

Сообщение от tenshi
Ну это понятно. То есть каждый файл нужно подключать вручную?
модули собираются автоматически. описывать модуль естественно вручную.

Сообщение от tenshi
Как ты сейчас обходишься с шаблонами? Гвоздями прибиваешь в JS? Грузишь в HTML? Ходишь на сервер чтобы что-нибудь отрендерить?
у меня своя приблуда, шаблоны на js синтаксисе. их ненужно компилировать. для нужд клиента его хватает.

каждый пользуется какими-то своими шаблонизаторами. я не хочу сборщик превращать во фреймворк или комбайн. в крайнем случаи можно компилировать вручную по команде, в модуле просто подключить эти готовые файлы. можно написать какойто автомат который будет компилировать шаблоны по изменению файла.

sass и подобное можно былобы всунуть прям в код, благо их не так много. но как сделать красиво у меня идей пока нет. ну и я ими не пользуюсь, хватает возможностей css.
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #20 (permalink)  
Старый 23.06.2013, 18:43
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

А зачем указывать глобальный адрес? Чем локальные-то не угодили?

Вручную - это же страшный геморрой. Неужели это никак не автоматизировать?

Это не шаблоны, а билдер. Разница в том, что шаблоны являются расширением целевого синтаксиса, а билдер конструирует используя исходный. Ну да не суть. Каждый пользуется какими-то своими [чем угодно], и хороший сборщик должен предоставлять апи в том или ином виде, чтобы к нему можно было прицепить другие приблуды. При этом вовсе не обязательно поддержку их всех реализовывать. Но хотя бы один пример крайне желателен.

Для примера, мой сборщик состоит из ядра, которое реализует единую схему разруливания зависимостей. И пачку модулей для сборки различных ассетов: для веб скриптов, для нодных скриптов, для расширений для мозиллы, для расширений для хрома, для стилей, для стилей с использованием sass, для xslt-шаблонов, для smatry-шаблонов, для локалей, для png-спрайтов, для svg-спрайтов... всё что им нужно - используя ядро получить отсортированный список файлов и слить их воедино. Для нового типа ассетов сборщик пишется на раз-два. Да, ещё пачка модулей для различных форматов файлов - чтобы зависимости искать автоматически, а не забивать их ручками.
__________________
.ня
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Обмен сообщениями между js загруженной страницы и расширением для браузера prihod Events/DOM/Window 6 11.12.2011 21:51
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57
изменение стиля для тега используя JS dimiork Элементы интерфейса 2 13.12.2010 10:47