VladimirIvanin / insales-uploader

Актуальная версия тут -
https://github.com/insales/insales-uploader
MIT License
9 stars 2 forks source link

browser-sync #1

Closed VladimirIvanin closed 7 years ago

VladimirIvanin commented 8 years ago

browser-sync

diproart commented 7 years ago

Есть потребность добавить browser-sync, для более комфортной разработки. При обновлении темы, перезагрузка страницы в браузере, через proxy.

VladimirIvanin commented 7 years ago

Прикрутил browser-sync в 0.19.2.

diproart commented 7 years ago

Да. Отлично работает.

VladimirIvanin commented 7 years ago

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

diproart commented 7 years ago

Да заметил. Я сделал timeout 2000ms, но все равно мало. Я думаю нужно смотреть в сторону использования stream (в будущем). Наверное нужен свой gulp плагин. Однозначно нужно событие или callback для контроля.

gulp.task('task', () => {
   return gulp.src(['src/**/*.*'])
    .pipe(gulp.dest('dist'))
    .on('finish', browserSync.reload);
   // .pipe(browserSync.reload({stream: true}));
});
VladimirIvanin commented 7 years ago

В свойство browserSync можно передать reloadDelay: 2000, ну или больше двух секунд, это будет плюсом к моей задержке на папку медиа. https://browsersync.io/docs/options#option-reloadDelay Разработка идет в сторону самодостаточного приложения, скорее всего буду все переписывать заново и пересаживать на electron, так как многим туго дается даже просто установить ноду. Насчет gulp приложения, у аплоадера не будет зависимости от gulp, чтобы была возможность использовать его в любой среде. Притом в обработке эвентов файловой системы сложная логика, которую мне проще контролить изолированно от среды использования. Сейчас популярен вебпак, потом ещё что то, потом ещё, а аплоадер дает просто голые методы которые можно использовать где угодно. Колбеков по сборке scss и js к сожалению точно не будет(

VladimirIvanin commented 7 years ago
gulp.task('stream', function () {
    return watch(InsalesUploader.paths.toWatch, function (e) {
        InsalesUploader.triggerFile(e.event, e.path);
    });
});

@diproart можете попробовать вот такую вещь, используя gulp watch. InsalesUploader.paths.toWatch - тут лежат стандартные пути для темы.

diproart commented 7 years ago

Да, понятно я код посмотрел, по-изучаю ещё. Таймаут, да я определю в browser-sync. Да, нет, нормально всё, я все понимаю, все сложности и проблемы. Буду следить за разработкой, если что у нас будет сообщу. Просто пока все завязано на gulp. Один вопрос - я правильно понимаю, что для работы с ассетами используется pomeo/node-insales и в дальнейшем это не изменится?

И если это возможно, буду иногда задавать вопросы)

VladimirIvanin commented 7 years ago

@diproart я всегда открыт для вопросов и идей! Онлайн со мной можно связаться через телеграм - @brain_murder. Насчет pomeo/node-insales, думаю да, буду его использовать и иногда туда что нибудь дописывать. Автор node-insales больше не работает с InSales, но пулл реквесты принимает.

Насчет сборщика была монструозная идея, использовать в сборке liquid как шаблонизатор, а данные, такие как products, articles записать в какую нибудь локальную базу. Желаемый профит, всё что не связано с аякс запросами разрабатывать вне сервака, экономя время и всегда под рукой база которой можно рулить как хочешь. При желании можно и рест эмулировать, хотябы cart_items.json, но это уже наверное слишком.

diproart commented 7 years ago

Как раз смотрим в сторону "монструозная идея", но пока раздумываем, опыта с InSales практически нет, нужно немного времени. Именно автоматизации и комфорта для разработки не хватает. Посмотрели node реализации liquid, соединили с express, но пока "сыро". Именно кешировать данные и эмулировать основное API. Актуальность данных не так важна, как комфорт в разработке и отладке даже простых решений. Даже после использования browser-sync "трудно вернуться обратно". Вектор развития и пул задач понятен.

VladimirIvanin commented 7 years ago

Плюс к комфорту будет новая версия скриптов для работы с магазином, сейчас всё ещё этап разработки, но пробовать можно уже сейчас insales-doc, так же можно установить и посмотреть тему на новых скриптах тут. Основная фича новых скриптов это eventBus. Так же в разработке фреймворк основанный на flex-box. В ближайший месяц я буду обновлять информацию на insales-doc, это рабочий домен, но скорее всего вся нужная инфа для разработки будет там. Возможно ещё будут полезны:

diproart commented 7 years ago

Ok. Спасибо, буду следить за обновлениями.