NV / chrome-devtools-autosave

Auto-saving CSS and JavaScript changes from the Chrome Developer Tools
MIT License
1.04k stars 89 forks source link

Несколько соображений #4

Closed varyen closed 12 years ago

varyen commented 12 years ago

Привет! Я на GDD задавал вопрос про авто-сохранение CSS при изменении через chrome devtools. :) Попробовал эктеншн, все работает, сейчас добавляю поддержку в свою CMSку.

Хотел поделиться несколькими соображениями, хотя большинство ты и так наверняка хотел сделать рано или поздно.

NV commented 12 years ago
  • Посылать не файл целиком, а только diff. Судя по форкам, это уже в работе. Только это стоит сделать опциональной возможностью

Я думаю на этим. Есть редкие случаи, когда это не будет работать:

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

Да. Возможно сделаю не через запятую, а перевод строки, и не в input, а в textarea

  • Дать возможность слать запрос на текущий хост, я сделал для этого плейсхолдер "{host}" в "Post to", при запросе соотвественно меняю его на нужный мне хост. Или еще проще - если "Post to" начинается со слеша, подставляем текущий хост и протокол

Я пока не знаю простого способа получить текущий хост из devtools.html.

  • Имеет смысл добавить обратную связь с сервером - проверять успешно ли изменен файл, достаточно ли прав на изменение файла

Будет. Скоро будет много архитектурных изменений.

P. S. Следующий раз лучше создавать по одному issue на каждый из пунктов.

varyen commented 12 years ago

Есть редкие случаи, когда это не будет работать:

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

Я пока не знаю простого способа получить текущий хост из devtools.html.

Я делаю так

        if (!url) {
            console.error(event.url + ' does not correspond to any backend.');
            return;
        }
        // host detecting
        if (url.match(/^\//)) {
            url = event.url.match(/^\w+(:\d+)?:\/\/[\w\d.]+/)[0] + url;
        }

P. S. Следующий раз лучше создавать по одному issue на каждый из пунктов.

Конечно

NV commented 12 years ago

Про хост. Я подумал, что речь о HTML-странице, которую пользователь смотрит. Можно и так, да.

Возможно стоит сделать capture группы. Как-то так:

Resource: ^(https?://[^:/]+)(:\d+)?/static
Post to: $1:9104/save
varyen commented 12 years ago

Да, так еще больше возможностей для настройки

NV commented 12 years ago
  • Указывать в конфиге через запятую хосты ...
  • Дать возможность слать запрос на текущий хост ...

Сколько у тебя хостов забито в настройках DevTools Autosave? Мне показалось, что много, раз такие идеи появились. Какой у них формат?

У меня всего два:

^file:// ➝ http://127.0.0.1:9104/save
^http://[^.]+\.someserver\.ru/ ➝ devtools-autosave.someserver.ru
varyen commented 12 years ago

Я вбиваю сайты, над которыми прямо сейчас работаю, штук 4-5

^http://(site1|site2|site3).*

как-то так. Хотя вообще, думаю вот о чем: для всех сайтов, которые подерживаю, внедрять подобную штуку. Очень удобно, если что-то надо быстро наживую что-то поправить в CSS. Так что пожалуй лучше действительно сделать отдельную вкладку в девелоперской панели, в которой просто включать/выключать скрипт для данного хоста. Ну и для него задавать отдельный URL, на который стучаться с обновленным CSSом, если он отличается от стандартного.

NV commented 12 years ago

Возможно стоит сделать capture группы. ...

Сделал.

varyen commented 12 years ago

http://www.youtube.com/watch?feature=player_embedded&v=RYbnfY_WYqg если интересно :)

NV commented 12 years ago

На 0:25 вылез алёрт с ошибкой. Ты сделал какую-то авторизацию?

varyen commented 12 years ago

Угум. Я шлю запрос в админку, а она возвращает JSON - все ли успешно прошло. При ошибке (например, нет прав на запись файла) возвращает текст ошибки.