Глотай с WinSCP - livereload и меньше
Я использую глоток с livereload
, less
и другие на удаленном сервере. Я успешно использовал глоток много раз и никогда не сталкивался с таким сценарием.
Я использую WinSCP для сохранения / редактирования файлов (я дважды щелкаю файл, и он открывается в Sublime Text ... Я сохраняю его, WinSCP автоматически загружает его обратно на сервер).
Однако при этом gulp-less
почти все время терпит неудачу. У меня есть два основных CSS-файла, которые скомпилированы - один из них Bootstrap, а другой - мой собственный - они должны компилироваться со своими собственными задачами gulp после модификации - но Bootstrap каждый раз дает сбой, а другой файл дает сбой примерно в половине случаев.
Когда я говорю, что не получается, вот что я имею в виду - с Bootstrap я всегда получаю одну и ту же ошибку:
variable @grid-columns is undefined in file ....grid.less line no. 48
Это происходит, даже если я определяю @grid-columns
как первый заголовок в моем основном файле "импорта" Bootstrap.
Другой терпит неудачу в этом livereload
перезагружает скомпилированный CSS в какой-то момент до компиляции файла Less. Это должно быть невозможно, но это происходит как-то.
Однако, когда из командной строки SSH, я набираю touch myfile.less
или же touch anybootstrapfile.less
все работает отлично.
Очевидно, это очень раздражает, но это пригодно для жизни. Я думаю, что должен быть какой-то способ исправить это все же. Любые идеи о том, что в мире может сделать это, и что (если что) я мог бы сделать, чтобы это исправить?
2 ответа
Скорее всего, когда WinSCP загружает файл после сохранения его во внутреннем редакторе, он устанавливает временную метку загруженного файла на более старую, чем была раньше.
Это может быть особенно актуально, если вы используете протокол FTP или Windows Vista или старше.
За подробностями обращайтесь к FAQ по WinSCP:
Почему изменения, загружаемые на веб-сервер, не отображаются в веб-браузере?
Хорошо. С помощью Мартина, который, как я теперь понимаю, является разработчиком WinScp, я решил это. Я работал с gulp.wait
Плагин и вставка паузы перед последней перезагрузкой - и это не сработало.
Потому что ... проблема была не в этом. Проблема происходила во время загрузки; в том, что файл скоро был "затронут" (или что-то с временной меткой, которая в итоге вызвала функциональный эквивлант).
Поэтому я переместил процесс ожидания прямо перед тем, как меньший процесс был вызван так:
gulp.src(src)
.pipe(plumber({
errorHandler:onError
})
.pipe(wait(500))
.pipe(less())
//etc
Я собираюсь экспериментировать, 500 мс, вероятно, дольше, чем нужно.. но не слишком долго, чтобы быть болезненным. Это решило проблему мгновенно.
Спасибо Мартин!