Как научиться пить залпом


5 правил утоления жажды для тех, кто готов выпить литр залпом

Наверняка вам известно чувство, когда пить хочется так сильно, что любая жидкость кажется горным источником. Результат – тяжесть в животе от большого количества выпитой (в лучшем случае) воды в желудке, которое долго не проходит из-за длительного всасывания из-за большого количества выпитого. Да, и жажда, кстати, тоже не проходит длительное время. Поэтому рассказываем, как предотвратить или уже утолить жажду всего за несколько глотков.

 

#1 Начните с одного глотка воды.

 

Чувство жажды ощущается при сгущении слюны или при её недостаточном количестве, например, во время длительного сна, когда жевательные мышцы и язык долгое время находятся без движения, или, наоборот, после длительных переговоров. Чтобы снизить проявление жажды в таком случае достаточно сделать 1 глоток воды или же просто прополоскать рот. Но только при условии, что вы достаточно пьёте воды в течение дня, и это на самом деле только признак сгущения слюны, а не сильного обезвоживания.

 

#2 Добавьте в стакан воды ломтик лимона или мяту.

 

Вода с лимоном немного лучше утоляет жажду. Лимонная и аскорбиновая кислоты повышают слюноотделение, в результате чего сухость пропадает. Одной дольки лимона на стакан будет достаточно, добавлять её можно в любое время в течение дня.
Мята даёт эффект прохлады, освежает, тем самым маскируя чувство жажды. Но её лучше добавлять в воду ближе к вечеру.

 

#3 Пейте воду маленькими глотками.

 

Когда вы пьёте воду залпом, она не успевает насытить клетки, и чувство жажды не проходит. Зато появляется тяжесть в желудке, а затем – резкое желание пойти в туалет. Пейте воду маленькими глотками, в идеале — постоянно в течение дня. А если жажда уже настигла – постоянно в течение 30-40 минут, и чувство жажды пройдёт намного быстрее, чем если бы вы осушили такое количество воды залпом, так как все клетки будут увлажнены.

 

#4 Не пейте холодную воду.

 

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

О ещё 4 недостатках холодной воды мы писали тут.

 

#5 Пейте чистую питьевую воду.

 

Не компот. Не сок. И, тем более, не сладкие газированные напитки. Всё, что содержит сахар, организм воспринимает не как жидкость, а как еду. А еда требует для усвоения выработки дополнительной энергии от органов, которые и так работают в тяжёлых условиях при отсутствии жидкости (недостатке слюны, желудочного сока, ферментов). Так что не надейтесь напиться сладкими напитками. Нет шансов.
Дико хочется сладкого? Возможно, организм таким образом сигнализирует об обезвоженности. Выпейте стакан воды и через минут 20, если желание съесть сладкое вас не покинуло, сделайте глоток натурального сока, смузи или натурального лимонада.

 

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

(15656)

comments powered by HyperComments

Как пить gulp.js | Учебники Дмитрия

Некоторое время назад я написал статью о том, как использовать Grunt для создания вашего приложения. Однако недавно на рынке появился новый игрок - Gulp. Я не собираюсь сравнивать их и говорить вам, какое из них лучше, но я собираюсь использовать одно и то же приложение и попытаться добиться того же с помощью Gulp. Прежде чем мы начнем с этого, позвольте мне объяснить, что могут делать Grunt и Gulp. Оба этих инструмента позволяют вам через конфигурацию / API выполнять определенные шаги по преобразованию исходного кода в код, который можно развернуть.Вот некоторые распространенные варианты использования:

  • Less / компиляция Sass
  • Компиляция Coffeescript / Typescript
  • Минимизация ресурсов
  • Запуск веб-сервера предварительного просмотра

Основное различие между Gulp и Grunt в том, что Gulp работает с потоками, а Grunt - с файлами. Поначалу это может сбивать с толку, но как только вы освоитесь, вы будете рады, что знаете такие инструменты, как Gulp или Grunt.

Установка

Установка довольно проста, просто введите следующую команду, и все готово:

установка npm -g gulp

В этой статье я буду использовать код из моего предыдущего приложения AngularJS, которое вы можете найти на Github.Я просто удалил модули, связанные с Grunt, из конфигурации npm и удалил файл конфигурации Grunt (хотя в этом нет необходимости, если вы хотите поддерживать обе системы сборки).

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

Загрузка некоторых модулей

Мы установили Gulp CLI сейчас, но нам также нужно загрузить Gulp локально и несколько модулей / плагинов для выполнения любых задач.В итоге я использовал следующие модули:

  • gulp : Gulp также должен быть установлен локально в вашем проекте, это делает API доступным.
  • gulp-run : с помощью подключаемого модуля gulp-run вы можете запускать команды. Я собираюсь использовать это, чтобы запустить Bower из моей задачи сборки Gulp.
  • gulp-less : Как следует из названия, этот плагин используется для компиляции файлов Less в моем проекте.
  • gulp-concat : этот модуль будет использоваться для объединения моих ресурсов, таких как файлы JavaScript и CSS.
  • gulp-ng-templates : Поскольку это проект AngularJS, я хотел бы скомпилировать свои шаблоны AngularJS, что я могу сделать с помощью этого модуля.
  • gulp-uglify : Чтобы минимизировать / уточнить мои файлы JavaScript для производственной упаковки, я буду использовать плагин gulp-uglify.
  • gulp-minify-css : альтернатива CSS для gulp-uglify. Я использую это, чтобы уменьшить свои скомпилированные файлы CSS.
  • gulp-zip : Я также хотел бы создать архив моих скомпилированных ресурсов, поэтому с помощью плагина gulp-zip я могу создать файл.ZIP-архив.
  • gulp-if : Gulp использует потоки, но некоторые небольшие задачи должны выполняться только в нескольких случаях канала. Для этого я могу использовать плагин gulp-if. Подробнее об этом я расскажу позже.
  • gulp-htmlmin : прежде чем я скомпилирую свои шаблоны AngularJS, я собираюсь минимизировать их с помощью этого модуля.
  • gulp-jshint : чтобы проверить, соответствует ли ваш код JavaScript определенным правилам качества, я использую JSHint. С помощью gulp-jshint я могу автоматизировать проверку кода JSHint.

Gulp также имеет совершенно иное видение того, какие модули должны делать. Если есть задача, которую легко воспроизвести с помощью другого пакета Node.js, то следует использовать этот пакет.

Итак, есть несколько модулей, которые я собираюсь использовать в своей конфигурации Gulp, но они не являются исключительно плагином Gulp, например:

  • del : Этот плагин можно использовать для удаления папок и каталогов. В этом случае я собираюсь использовать его, чтобы очистить свою папку, содержащую все скомпилированные ресурсы.
  • browser-sync : этот модуль можно использовать для запуска сервера (перезагрузки в реальном времени) для вашего веб-приложения.

В итоге мой package.json выглядел так:

  { "name": "angular-song-rate-gulp", "версия": "0.0.1", "devDependencies": { "глоток": "последний", "gulp-run": "последний", "без глотка": "последний", "gulp-concat": "последний", "gulp-ng-templates": "последний", "gulp-uglify": "последний", "gulp-minify-css": "последний", "gulp-zip": "последний", "глоток-если": "последний", "gulp-htmlmin": "последний", "gulp-jshint": "последний", "browser-sync": "последний", "дель": "последний", "карма": "~ 0.12,0" , "карма-жасмин": "~ 0.1.0", "karma-phantomjs-launcher": "~ 0.1.4", "карма-нг-html2js-препроцессор": "~ 0.1.0" } }  

Подготовка файла конфигурации Gulp

Когда вы установили все модули Node.js, вы можете начать настройку своего проекта с помощью Gulp, создав файл gulpfile.js . Этот файл будет содержать все наши задачи, поэтому в этом руководстве он будет единственным файлом, который будет использоваться.

Прежде всего, мы собираемся включить все компоненты Node.js нужные нам пакеты, написав:

  var gulp = require ('gulp'), del = требуется ('del'), запустить = требовать ('глоток-запустить'), less = require ('gulp-less'), htmlmin = require ('gulp-htmlmin'), ngTemplates = require ('gulp-ng-templates'), cssmin = require ('gulp-minify-css'), uglify = require ('gulp-uglify'), карма = требовать ('карма'). сервер, concat = требуется ('глоток-concat'), jshint = require ('gulp-jshint'), gulpif = require ('глоток-если'), zip = require ('gulp-zip'), путь = требуется ('путь'), browserSync = требуется ('синхронизация браузера'), pkg = require ('./package.json '), перезагрузить = browserSync.reload;  

Затем мы можем начать записывать наши задачи, например:

  gulp.task ('serve', function () { });  

Если вам нужно написать несколько задач, вы можете объединить их в цепочку следующим образом:

  gulp.task ('serve', function () { }) .task ('serve: minified', function () { });  

Итак, приступим к созданию задач!

Управление зависимостями Bower

Чтобы перезагрузить управляемые зависимости Bower, вы обычно вводите команду bower install .Чтобы автоматизировать это, мы можем использовать плагин gulp-run:

  gulp.task ('беседка', function () { run ('установка беседки'). exec (); })  

Очистка папки dist /

У нас есть и другие небольшие задачи, например очистка папки dist:

  .task ('clean', function (cb) { del (['расстояние / **'], cb); })  

Запуск веб-сервера

Запуск веб-сервера для просмотра нашего приложения может быть выполнен с помощью модуля синхронизации браузера:

 .task ('сервер', function () { browserSync ({ server: { baseDir: './' } }); })  

Давайте начнем с компилирования наших Меньше ресурсов

Эти предыдущие задачи уже сделали некоторые интересные вещи, но следующая задача покажет вам сильные стороны Gulp. Если вы помните Grunt, вы знаете, что для компиляции ресурсов Less нам пришлось сделать несколько вещей:

  • Нам пришлось скомпилировать меньше ресурсов в CSS (очевидно)
  • Нам пришлось объединить скомпилированные файлы CSS в один файл
  • Нам пришлось минимизировать скомпилированный код CSS

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

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

Для компиляции ресурсов Less у нас будет две задачи: одна минимизируется, а другая нет (для разработки):

  .task ('меньше', function () { вернуть gulp.src ('активы / меньше / *. меньше') .pipe (меньше ()) .pipe (CONCAT ( 'style.css')) .pipe (gulp.dest ( 'расстояние')); }) .task ('less: min', function () { return gulp.src ('assets / less / *.Меньше') .pipe (меньше ()) .pipe (CONCAT ( 'style.css')) .pipe (cssmin ()) .pipe (gulp.dest ( 'расстояние')); })  

Как вы можете видеть здесь, мы запускаем задачи less () , concat () и cssmin () , прежде чем мы фактически скажем, что они должны быть записаны в папку dist.

Для этого мы направляем источники в эти несколько задач и в конце используем gulp.dest () для определения места назначения.

Проверка JSHint

Трубы возвращаются практически во всех задачах.Для проверки JSHint мы будем использовать:

  .task ('lint', function () { вернуть gulp.src ('./ app / *. js') .pipe (jshint ()) .pipe (jshint.reporter ( 'по умолчанию')); })  

Запуск наших модульных тестов с Karma

Модуль Karma уже позволяет нам запускать Karma runner без необходимости устанавливать отдельный плагин Gulp, как это было с Grunt.

Для запуска Karma runner вы можете просто выполнить следующие задачи:

  .task ('карма', function (done) { карма.Начало({ configFile: __dirname + '/config/karma.conf.js', singleRun: правда }, сделано); }) .task ('карма: смотреть', function (done) { karma.start ({ configFile: __dirname + '/config/karma.conf.js' }, сделано); })  

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

Компиляция JavaScript

Самой сложной задачей будет задача компиляции JavaScript.Как и в случае с задачами компиляции Less, здесь у нас также будет две задачи:

  .task ('js', function () { вернуть gulp.src (['app / *. js', 'app / templates / *. html']) .pipe (gulpif (/ \. html $ /, htmlmin ({collapseWhitespace: true}))) .pipe (gulpif (/ \. html $ /, ngTemplates ())) .pipe (CONCAT ( 'app.js')) .pipe (gulp.dest ( 'расстояние')); }) .task ('js: min', function () { вернуть gulp.src (['app / *. js', 'app / templates / *. html']) .pipe (gulpif (/ \. html $ /, htmlmin ({collapseWhitespace: true}))) .pipe (gulpif (/ \.html $ /, ngTemplates ())) .pipe (uglify ({mangle: false})) .pipe (CONCAT ( 'app.js')) .pipe (gulp.dest ( 'расстояние')); })  

Что здесь происходит, понять не так уж и сложно. Прежде всего, мы загрузим исходный код JavaScript как HTML-шаблоны AngularJS в качестве наших источников ( gulp.src ).

Наши шаблоны AngularJS должны выполнять несколько различных шагов, потому что они должны быть сначала уменьшены с помощью htmlmin () , а затем они должны быть скомпилированы в файлы JavaScript с помощью ngTemplates () .

Для выполнения определенных задач только в нескольких случаях мы можем использовать плагин gulpif () . Мы просто предоставляем регулярное выражение, которое соответствует файлам HTML, а в качестве второго параметра мы указываем фактическую задачу.

После того, как все скомпилировано в файлы JavaScript, мы можем использовать задачу uglify () для минимизации нашего кода JavaScript. Имейте в виду, что если вы используете инъекцию зависимостей Angular без строк, например:

  angular.module ("myApp.контроллеры "). controller (" MyCtrl ", function ($ scope, MyService) { });  

Вам необходимо отключить опцию mangle . Эта опция переименует все переменные в однобуквенные переменные, что запутает внедрение зависимостей AngularJS.

После минификации мы можем объединить все файлы с помощью concat () , а затем мы можем записать их в папку dist, аналогично тому, что мы сделали в задаче Less.

Все вместе… задача обслуживания

Теперь мы сделали все виды полезных задач, но вы не хотите запускать их все вручную (хотя это возможно).Вы можете определять задачи, которые зависят от других задач. Для этого мы предоставляем специальный второй параметр с массивом задач, которые мы хотим запустить, например:

  .task ('serve', ['bower', 'clean', 'lint', 'karma', 'less', 'js', 'server'], function () { return gulp.watch ([ '* .js', 'app / *. js', '* .html', 'assets / ** / *. less' ], [ 'lint', 'karma', 'less', 'js', browserSync.reload ]); })  

Итак, задача serve сначала запустит задачи bower, clean, lint, karma, less, js и server.

Когда это будет сделано, он будет просматривать определенные файлы. Наблюдая за нашими исходными файлами, мы можем запускать определенные задачи при изменении файла. В этом случае мы снова запустим задачу lint, karma, less и js.

Также необходимо перезагрузить браузер, для этого мы можем использовать задачу browserSync.reload .

А как насчет минификации?

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

 .task ('serve: minified', ['bower', 'clean', 'lint', 'karma', 'less: min', 'js: min', 'server'], function () { return gulp.watch ([ '* .js', 'app / *. js', '* .html', 'assets / ** / *. less' ], [ lint, karma, less: min, js: min, browserSync.reload ]); })  

А как насчет разработки через тестирование (TDD)?

Когда вы используете разработку через тестирование, гораздо важнее видеть, выполняются ли тесты, чем смотреть в приложение каждый раз, когда вы меняете код. В этом случае нам придется снова проверить наш код и запустить модульные тесты Karma:

 .task ('tdd', ['bower', 'lint'], function () { return gulp.watch ([ '* .js', 'app / *. js', '* .html', 'assets / ** / *. less' ], [ "пух", "карма" ]); })  

Создание архива

Почти готово, последняя задача, которую я хотел бы добавить, - это задача, которая создает ZIP-архив наших минифицированных скомпилированных ресурсов. Очевидно, что эта задача также будет зависеть от нескольких задач, таких как Bower, clean, lint, karma, less: min и js: min task. Это похоже на задачу serve: minified, за исключением того, что для нее не требуется запускать веб-сервер.

После загрузки всех этих задач мы должны использовать zip () задачу:

  .task ('package', ['bower', 'clean', 'lint', 'karma', 'less: min', 'js: min'], function () { return gulp.src (['index.html', 'dist / **', 'libs / **'], {base: './'}) .pipe (zip (имя пакета + '-' + версия пакета + '.zip')) .pipe (gulp.dest ( 'расстояние')); })  

Первым делом загружаем наши исходники. Здесь важно увидеть второй аргумент, в котором мы передаем {base: './'} .Если мы не укажем это значение, все источники будут переданы без ссылки на папку, в которой они находятся.

Если в этом случае мы создадим ZIP-архив, наша структура папок исчезнет. Чтобы сохранить структуру папок, мы можем определить базовую папку.

Задача zip () создаст ZIP-архив с именем нашего приложения и его версией. Мы получим эту информацию из файла package.json, добавив его содержимое с помощью require ('./ package.json') .

Проверяем

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

порции залпом

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

gulp serve: minified должен делать что-то очень похожее, за исключением того, что он будет запускать задачи less: min и js: min.

Затем у нас есть задача gulp tdd , которая будет запускать каждый модульный тест снова, как только код изменится.Например, когда мы что-то меняли, чтобы код не работал, мы могли видеть ошибки. Когда мы снова исправили код, все тесты снова прошли успешно.

Наконец, у нас есть задача gulp package , которую можно использовать для создания ZIP-архива.

Когда задача будет завершена, вы сможете найти файл .ZIP внутри папки dist /, содержащей исходные коды вашего приложения.

Достижение
: сделало ваше приложение AngularJS еще более плавным с помощью Gulp
.

Это означает, что вы закончили этот учебник по использованию Gulp для создания веб-приложения AngularJS.Если вас интересует полный пример кода, вы можете найти его на Github. Если вы хотите опробовать код самостоятельно, вы можете скачать архив с Github.

.

Как выполнить несколько команд gulp в одной задаче

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Общественные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
.

javascript - Как выполнить несколько действий за один глоток?

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Общественные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним возможности технической карьеры
  5. Талант Нанять технических талантов
  6. реклама Обратитесь к разработчикам по всему миру
,

Смотрите также