gulp-build-system

A continuación mostramos el flujo de trabajo habitual con Gulp, para la creación y configuración de un proyecto, y posterior trabajo sobre los ficheros del mismo.

Dado que el fichero gulpfile.js hace uso de la API incluida en Gulp, es importante revisar el material de la asignatura en el punto 3.4.4 Build Systems, y más concretamente la parte destinada a Gulp, además de la propia documentación sobre la API de comandos básicos.

Partimos de un escenario en el que ya se encuentra disponible una instalación de nodeJS y de npm en nuestro equipo y tenemos una carpeta dentro del directorio de trabajo del servidor web (en caso de XAMPP por defecto en la carpeta htdocs, aunque es algo que se puede cambiar en el fichero httpd.conf de apache modificando la ruta asignada a DocumentRoot) que en su interior contiene la estructura de carpetas que muestra la imagen:

Estructura proyecto web básico

1) Instalación del CLI de Gulp de forma global

El siguiente paso es acceder a la consola de comandos o al terminal para instalar «CLI» (Command Line Interface) de Gulp de forma global. Esto lo logramos a través de npm, con el comando habitual de instalación de un paquete:

npm install --global gulp-cli

En el caso de realizar la instalación en OSX, puede ser que nos de arroje errores de permisos, en cuyo caso habría que lanzar esa misma linea precedida de sudo.

2) Instalación de Gulp en el proyecto local

Una vez tenemos el CLI instalado, podemos instalar ahora Gulp como dependencia del proyecto con el que queremos trabajar, de manera que además quede registrado en el fichero package.json que previamente hemos creado.

npm install gulp --save-dev

Con este paso en nuestro proyecto se nos ha generado una carpeta node_modules que guarda los paquetes necesarios para los plugins que iremos añadiendo al entorno de trabajo, y que NO debería formar parte del repositorio (por lo tanto se debería excluir con git ignore)

Estructura de carpetas con gulp ya incluido

3) Instalación de plugins

A continuación, instalamos todos los plugins que deseemos usar en nuestro proyecto. Esto podemos lograrlo instalando cada uno de ellos desde línea de comandos (3A) o bien editando el fichero package.json que teníamos creado en la carpeta raíz de nuestro proyecto, para que éste se use como base para la instalación completa de todas las dependencias que indica en su interior (3B).

Los plugins que vamos a usar en este tutorial son:

  • del: utilidad para borrar ficheros.
  • gulp-sasspara el trabajo con el preprocesador CSS Sass.
  • gulp-jshint: para evaluación de código JavaScript.
  • jshint-stylish: para estilizar los mensajes de JSHint.
  • gulp-concat: para concatenar ficheros.
  • gulp-uglify: para compactar ficheros.
  • gulp-sourcemaps: para poder depurar en el navegador en los fuentes a partir de los compilados o minificados.
  • gulp-imagemin: para comprimir imágenes.
  • browser-sync: para testeo en navegador y dispositivos de forma sincronizada.

3A) Instalación individual de plugins

Hacemos uso repetido del comando npm install nombre-plugin –save-dev que además de instalar el paquete del plugin correspondiente actualiza el fichero package.json (se le indica con el –save-dev).

Por ejemplo en el caso de gulp-sass escribiríamos:

npm install gulp-sass --save-dev

Una forma de agilizar este proceso, que en el caso de este tutorial se tendría que repetir 6 veces (una por cada plugin) es hacer la instalación en una sola línea, que sería totalmente equivalente a esto:

npm install gulp del gulp-sass gulp-jshint jshint-stylish gulp-concat gulp-uglify gulp-sourcemaps gulp-imagemin browser-sync --save-dev

3B) Instalación a través de package.json

La alternativa a la instalación individual sería contar con la identificación como dependencias del proyecto de los paquetes que queremos en el fichero package.json, del cual tenemos un recurso en la red muy ilustrativo sobre la anatomía de dicho fichero.

En nuestro caso tendríamos:

{
 "name": "gulp-basics",
 "version": "0.0.1",
 "description": "Ejemplo básico de entorno de desarrollo front-end con Gulp",
 "author": "Marcos Gonzalez <mgonzalezsancho@uoc.edu>",
 "devDependencies": {
 "browser-sync": "^2.11.1",
 "del": "^2.2.0",
 "gulp": "^3.9.1",
 "gulp-concat": "^2.6.0",
 "gulp-imagemin": "^2.4.0",
 "gulp-jshint": "^2.0.0",
 "gulp-sass": "^2.2.0",
 "gulp-sourcemaps": "^1.6.0",
 "gulp-uglify": "^1.5.3",
 "jshint": "^2.9.1",
 "jshint-stylish": "^2.1.0"
 }
}

A partir del mismo se podrían instalar todos los plugins indicados como devDependencies en nuestro directorio de proyecto ejecutando la siguiente instrucción, una vez nos encontramos dentro de la carpeta raíz del proyecto, es decir al mismo nivel que el fichero package.json:

npm install

Esta instrucción lanza un proceso secuencial que descarga todos los paquetes necesarios para contar con esos plugins en nuestro proyecto. Esta característica es la que hace importante incluir este fichero en el repositorio, para que cualquier miembro del equipo o nosotros mismos descargándonos el contenido del repositorio, estemos a un simple comando de obtener todos los paquetes necesarios.

4) Añadir plugins posteriormente

Si se quisiera añadir algún plugin adicional posteriormente y no se desea añadirlo manualmente editando el fichero package.json, se pueden hacer la instalación con el formato visto en el punto 3A.

npm install nombre-paquete --save-dev

Lo que instalará dicho paquete en nuestro proyecto (bajo la carpeta node_modules) y además añadirá ese plugin a las dependencias fichero package.json (al incluir el –save-dev)

5) Creación del fichero gulpfile.js

El otro fichero clave para montar este entorno de trabajo es el denominado gulpfile.js, que será el que especifique cómo queremos usar esos plugins en nuestro proyecto, nos permita crear las diferentes tareas, combinarlas, etc. El contenido del fichero gulpfile empleado en este tutorial es:

var gulp        = require('gulp'),
    del         = require('del'),
    browserSync = require('browser-sync').create(),
    concat      = require('gulp-concat'),
    imagemin    = require('gulp-imagemin'),
    jshint      = require('gulp-jshint'),
    stylish     = require('jshint-stylish'),
    sass        = require('gulp-sass'),
    sourcemaps  = require('gulp-sourcemaps'),
    uglify      = require('gulp-uglify');


// Definición de direcotrios origen
var srcPaths = {
    images:   'src/img/',
    scripts:  'src/js/',
    styles:   'src/sass/',
    files:    'src/'
};


// Definición de directorios destino
var distPaths = {
    images:   'dist/img/',
    scripts:  'dist/js/',
    styles:   'dist/css/',
    files:    'dist/'
};


// Limpieza del directorio dist
gulp.task('clean', function(cb) {
  del([ distPaths.files+'*.html', distPaths.images+'**/*', distPaths.scripts+'*.js', distPaths.styles+'*.css'], cb);
});


// Copia de los cambios en los ficheros html en el directorio dist.
gulp.task('html', function() {
    return gulp.src([srcPaths.files+'*.html'])
        .pipe(gulp.dest(distPaths.files))
        .pipe(browserSync.stream());
});


/* 
* Procesamiento de imágenes para comprimir / optimizar las mismas.
*/ 
gulp.task('imagemin', function() {
    return gulp.src([srcPaths.images+'**/*'])        
        .pipe(imagemin({
            progressive: true,
            interlaced: true,
            svgoPlugins: [{removeUnknownsAndDefaults: false}, {cleanupIDs: false}]
        }))
        .pipe(gulp.dest(distPaths.images))
        .pipe(browserSync.stream());
});


/* 
* Procesamiento de ficheros SCSS para la generación de los ficheros
* CSS correspondientes. Los sourcemaps en este caso se generan dentro 
* del propio fichero.
*/ 
gulp.task('css', function() {
    return gulp.src([srcPaths.styles+'**/*.scss'])
        .pipe(sourcemaps.init())
            .pipe(sass())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest(distPaths.styles))
        .pipe(browserSync.stream());
});


/* 
* Procesamiento de ficheros JS mediante JSHint para detección de errores.
* Este proceso es previo al tratamiento de los ficheros JS para la 
* obtención del fichero concatenado y minificado.
*/ 
gulp.task('lint', function() {
  return gulp.src([srcPaths.scripts+'**/*.js'])
    .pipe(jshint())
    .pipe(jshint.reporter(stylish));
});


/* 
* Procesamiento de ficheros JS para la generación de un fichero 
* final único y minificado. Los sourcemaps se generan en una 
* carpeta independiente en vez de en el propio fichero.
*/ 
gulp.task('js', ['lint'], function() {
    return gulp.src([srcPaths.scripts+'main.js', srcPaths.scripts+'extra.js'])                            
        .pipe(sourcemaps.init())
            .pipe(concat('all.min.js'))        
            .pipe(uglify())
        .pipe(sourcemaps.write('maps'))
        .pipe(gulp.dest(distPaths.scripts))
        .pipe(browserSync.stream());
});


/*
* Tarea para lanzar el proceso de servidor mediante BrowserSync.
* Antes de comenzar la propia tarea ejecuta las tareas de las que tiene
* dependencia: html, imagemin, css y js necesarias para disponer
* del proyecto en dist, ya que cada vez que se lanza gulp, se hace una
* limpieza de dicho directorio.
*
* En este caso se trabaja con un servidor local mediante un proxy
* y se define la ruta de partida, así como los navegadores a lanzar
* en caso de estar disponibles en el equipo.
*
* Adicionalmente se crean los watchers para procesar los cambios que se
* puedan producir en los archivos sensibles para el proyecto.
*/
gulp.task('serve', ['html', 'imagemin', 'css', 'js'], function() {
    browserSync.init({
        logLevel: "info",
        browser: ["google chrome", "Firefox"],
        proxy: "localhost:80",
        startPath: "/gulp-basics/dist/"
    });

    gulp.watch(srcPaths.files+'*.html', ['html']);
    gulp.watch(srcPaths.images+'**/*', ['imagemin']);   
    gulp.watch(srcPaths.styles+'**/*.scss', ['css']);
    gulp.watch(srcPaths.scripts+'**/*.js', ['js']);
});

/* 
* Definción de la tarea por defecto que en este caso limpia el directorio destino
* y lanza la tarea de servidor.
*/
gulp.task('default', ['clean', 'serve'], function() {});

 

Se puede apreciar en este fichero una de las mayores diferencias con respectoa Grunt, que es que en vez de tener que realizar importantes esfuerzos configurando cada plugin, en este caso se configuran tareas de una forma mucho más intuitiva mediante el encadenamiento de acciones sobre los ficheros procesados.

Con Gulp podemos crear tantas tareas como queramos y combinarlas de forma compleja, incluso aplicando lógica mediante JavaScript.

6) Arranque y testeo

El último paso es lanzar Gulp para que el entorno empiece a funcionar, y podamos comprobar como editando un fichero sass, o un fichero js, o modificando el contenido HTML de nuestra página podemos ver los cambios en el equipo de trabajo e incluso en otros equipos y dispositivos conectados a través de browsersync.

Para ello simplemente, en el terminal o línea de comandos, una vez estemos en la carpeta del proyecto, ejecutamos la instrucción gulp indicando la acción que queremos ejecutar… como en este caso hemos preparado la acción por defecto vinculándola a las tareas de limpieza y lanzamiento de BrowserSync junto con la monitorización de ficheros, nos valdría con simplemente poner en la consola o terminal:

gulp

Con esto se mostrarían los correspondientes mensajes de ejecución de las tareas y si todo va bien se lanzaría BrowserSync en los navegadores indicados con la página de salida abierta, tras la ejecución de todas las tareas asociadas a la ejecución de la tarea «serve»

 

Únete a la conversación

309 comentarios

  1. Me parece que el uso de Gulp es fundamental para agilizar el desarrollo front-end en diferentes plataformas, como web y dispositivos móviles. Gracias a sus tareas automatizadas, podemos optimizar nuestro flujo de trabajo y minimizar errores. Es importante conocer los conceptos básicos de esta herramienta para sacarle el máximo provecho y mejorar la eficiencia de nuestro trabajo como desarrolladores. Además, el hecho de que sea una herramienta tan versátil, nos permite adaptarla a nuestras necesidades específicas, lo cual resulta muy útil en un entorno tan cambiante como el desarrollo web.

  2. ¡Qué interesante tema! El uso de Gulp es fundamental para optimizar y agilizar el desarrollo front-end, tanto en web como en dispositivos. Esta herramienta nos permite automatizar tareas repetitivas, como la minificación de archivos, la concatenación de scripts y la recarga automática del navegador. Gracias a Gulp, podemos mejorar nuestra productividad y concentrarnos en la creación de interfaces más eficientes y atractivas. Sin duda, dominar el uso básico de esta herramienta es clave para cualquier desarrollador front-end. ¡Espero seguir aprendiendo más sobre Gulp y sus aplicaciones en el desarrollo web!

  3. Ремонт бампера автомобиля — это популярная услуга, которая позволяет вернуть изначальный вид транспортного средства после незначительных повреждений. Новейшие технологии позволяют убрать потертости, трещины и вмятины без полной замены детали. При выборе между ремонтом или заменой бампера https://telegra.ph/Remont-ili-zamena-bampera-05-22 важно рассматривать уровень повреждений и экономическую целесообразность. Профессиональное восстановление включает подготовку, грунтовку и покраску.

    Установка нового бампера требуется при значительных повреждениях, когда восстановление бамперов невыгоден или невозможен. Расценки восстановления зависит от состава изделия, масштаба повреждений и марки автомобиля. Синтетические элементы подлежат ремонту лучше стальных, а инновационные композитные материалы требуют особого оборудования. Грамотный ремонт увеличивает срок службы детали и поддерживает заводскую геометрию кузова.

    Без колебаний окажу свою помощь, когда потребуется по вопросам Сургут ремонт бамперов отзывы – пишите в Telegram dmx01

  4. Новостной портал https://novosti24.com.ua с фокусом на важное: оперативные репортажи, аналитика, интервью и факты без шума. Политика, экономика, технологии, культура и спорт. Удобная навигация, персональные ленты, уведомления и проверенные источники каждый день.

  5. Портал о строительстве https://newboard-store.com.ua и ремонте: от проекта до сдачи объекта. Каталоги производителей, сравнение материалов, сметы, BIM и CAD, нормативная база, ленты новостей, вакансии и тендеры. Практика, цифры и готовые решения.

  6. Современный автопортал https://carexpert.com.ua главные премьеры и тенденции, подробные обзоры, тест-драйвы, сравнения моделей и подбор шин. Экономия на обслуживании, страховке и топливе, проверки VIN, лайфхаки и чек-листы. Всё, чтобы выбрать и содержать авто без ошибок да

  7. Современный новостной https://vestionline.com.ua портал: главные темы суток, лонгриды, мнения экспертов и объясняющие материалы. Проверка фактов, живые эфиры, инфографика, подборка цитат и контекст. Быстрый доступ с любого устройства и без лишних отвлечений.

  8. Главный автопортал https://newsgood.com.ua о драйве и прагматике: премьеры, технологии, электрокары, кроссоверы и коммерческий транспорт. Экспертные обзоры, тест-драйвы, подбор автокредита и страховки, расходы и сервис. Проверка истории авто и советы по экономии и сервисы.

  9. Твой автопортал https://kia-sportage.in.ua о новых и подержанных машинах: рейтинги надёжности, разбор комплектаций, реальные тесты и видео. Помощь в покупке, кредит и страховка, расходы владения, ТО и тюнинг. Карта сервисов, советы по безопасности и сезонные рекомендации плюс

  10. Автопортал для новичков https://lada.kharkiv.ua и профи: новости рынка, аналитика, сравнения, тесты, долгосрочные отчёты. Выбор авто под задачи, детальные гайды по покупке, продаже и трейд-ину, защита от мошенников. Правила, штрафы, ОСАГО/КАСКО и полезные инструменты и ещё

  11. Современный женский https://timelady.kyiv.ua сайт о стиле жизни: уход за собой, макияж, прически, фитнес, питание, мода и деньги. Практичные советы, разбор трендов, подборки покупок и личная эффективность. Будь в ресурсе и чувствуй себя уверенно каждый день. Больше — внутри.

  12. Женский медиасайт https://woman365.kyiv.ua с акцентом на пользу: капсульный гардероб, бьюти-рутины, здоровье, отношения, саморазвитие и материнство. Пошаговые инструкции, списки покупок, чек-листы и экспертные ответы. Заботимся о тебе и твоем времени. Подробности — на сайте.

  13. Твой женский помощник https://vsegladko.net как подчеркнуть индивидуальность, ухаживать за кожей и волосами, планировать бюджет и отдых. Мода, психология, дом и карьера в одном месте. Подборки, гайды и истории, которые мотивируют заботиться о себе. Узнай больше на сайте.

  14. Советы для родителей https://agusha.com.ua на каждый день: раннее развитие, кризисы возрастов, дисциплина, здоровье, игры и учеба. Экспертные разборы, простые лайфхаки и проверенные методики без мифов. Помогаем понять потребности ребёнка и снизить стресс в семье.

  15. Женский портал https://womanclub.kyiv.ua о стиле жизни, красоте и вдохновении. Советы по уходу, отношениям, карьере и саморазвитию. Реальные истории, модные тренды, психологические лайфхаки и идеи для гармонии. Всё, что важно каждой современной женщине.

  16. Автомобильный журнал https://autodream.com.ua для новичков и энтузиастов: тренды, тест-драйвы, сравнения, разбор комплектаций, VIN-проверки и подготовка к сделке. Практичные гайды по уходу и экономии, гаджеты для авто, законы и штрафы. Делимся опытом, чтобы не переплачивали.

  17. Актуальные новости https://thingshistory.com без перегруза: коротко о событиях и глубоко о смыслах. Репортажи с места, интервью, разборы и аналитика. Умные уведомления, ночной режим, офлайн-доступ и виджеты. Доверяйте проверенным данным и оставайтесь на шаг впереди.

  18. Новостной портал https://pto-kyiv.com.ua для тех, кто ценит фактчекинг и ясность. Картина дня в одном месте: политика, экономика, общество, наука, спорт. Ежедневные дайджесты, обзоры рынков, календари событий и авторские колонки. Читайте, делитесь, обсуждайте.

  19. Всё про технику https://webstore.com.ua и технологии: обзоры гаджетов, тесты, сравнения, ИИ и софт, фото/видео, умный дом, авто-тех, безопасность. Пошаговые гайды, лайфхаки, подбор комплектующих и лучшие приложения. Понятно, актуально, без лишней воды.

  20. Опытный адвокат http://www.zemskovmoscow.ru в москве: защита по уголовным делам и юридическая поддержка бизнеса. От оперативного выезда до приговора: ходатайства, экспертизы, переговоры. Минимизируем риски, действуем быстро и законно.

  21. Купить квартиру https://kvartiratltpro.ru без переплат и нервов: новостройки и вторичка, студии и семейные планировки, помощь в ипотеке, полное сопровождение сделки до ключей. Подбор вариантов под ваш бюджет и район, прозрачные условия и юридическая проверка.

  22. Хотите купить квартиру? https://spbnovostroyca.ru Подберём лучшие варианты в нужном районе и бюджете: новостройки, готовое жильё, ипотека с низким первоначальным взносом, помощь в одобрении и безопасная сделка. Реальные объекты, без скрытых комиссий и обмана.

  23. Скрипт обменника https://richexchanger.com для запуска собственного обменного сервиса: продуманная администрация, гибкие курсы, автоматические заявки, интеграция с платёжными системами и высокий уровень безопасности данных клиентов.

  24. Независимый сюрвей в Москве: проверка грузов и объектов, детальные отчёты, фотофиксация и экспертные заключения. Прозрачная стоимость сюрвейерских услуг, официальные гарантии и быстрая выездная работа по столице и области.

  25. Хочешь развлечься? купить альфа пвп федерация – это проводник в мир покупки запрещенных товаров, можно купить гашиш, купить мефедрон, купить кокаин, купить меф, купить экстази, купить альфа пвп, купить гаш в различных городах. Москва, Санкт-Петербург, Краснодар, Владивосток, Красноярск, Норильск, Екатеринбург, Мск, СПБ, Хабаровск, Новосибирск, Казань и еще 100+ городов.

  26. Логистика из Китая https://asiafast.ru без головной боли: доставка грузов морем, авто и ЖД, консолидация на складе, переупаковка, маркировка, таможенное оформление. Предлагаем выгодные тарифы и гарантируем сохранность вашего товара.

  27. Доставка грузов https://china-star.ru из Китая для бизнеса любого масштаба: от небольших партий до контейнеров. Разработаем оптимальный маршрут, оформим документы, застрахуем и довезём груз до двери. Честные сроки и понятные тарифы.

  28. Клиника проктологии https://proctofor.ru в Москве с современным оборудованием и опытными врачами. Проводим деликатную диагностику и лечение геморроя, трещин, полипов, воспалительных заболеваний прямой кишки. Приём по записи, без очередей, в комфортных условиях. Бережный подход, щадящие методы, анонимность и тактичное отношение.

  29. Колодцы под ключ https://kopkol.ru в Московской области — бурение, монтаж и обустройство водоснабжения с гарантией. Изготавливаем шахтные и бетонные колодцы любой глубины, под ключ — от проекта до сдачи воды. Работаем с кольцами ЖБИ, устанавливаем крышки, оголовки и насосное оборудование. Чистая вода на вашем участке без переплат и задержек.

  30. Инженерные изыскания https://sever-geo.ru в Москве и Московской области для строительства жилых домов, коттеджей, коммерческих и промышленных объектов. Геология, геодезия, экология, обследование грунтов и оснований. Работаем по СП и ГОСТ, есть СРО и вся необходимая документация. Подготовим технический отчёт для проектирования и согласований. Выезд на объект в короткие сроки, прозрачная смета, сопровождение до сдачи проекта.

  31. Доставка торфа https://bio-grunt.ru и грунта по Москве и Московской области для дач, участков и ландшафтных работ. Плодородный грунт, торф для улучшения структуры почвы, готовые земляные смеси для газона и клумб. Быстрая подача машин, аккуратная выгрузка, помощь в расчёте объёма. Работаем с частными лицами и организациями, предоставляем документы. Сделайте почву на участке плодородной и готовой к посадкам.

  32. Строительство домов https://никстрой.рф под ключ — от фундамента до чистовой отделки. Проектирование, согласования, подбор материалов, возведение коробки, кровля, инженерные коммуникации и внутренний ремонт. Работаем по договору, фиксируем смету, соблюдаем сроки и технологии. Поможем реализовать дом вашей мечты без стресса и переделок, с гарантией качества на все основные виды работ.

  33. Геосинтетические материалы https://stsgeo.ru для строительства купить можно у нас с профессиональным подбором и поддержкой. Продукция для укрепления оснований, армирования дорожных одежд, защиты гидроизоляции и дренажа. Предлагаем геотекстиль разных плотностей, георешётки, геомембраны, композитные материалы.

  34. Доставка грузов https://avalon-transit.ru из Китая «под ключ» для бизнеса и интернет-магазинов. Авто-, ж/д-, морские и авиа-перевозки, консолидация на складах, проверка товара, страхование, растаможка и доставка до двери. Работаем с любыми партиями — от небольших отправок до контейнеров. Прозрачная стоимость, фотоотчёты, помощь в документах и сопровождение на всех этапах логистики из Китая.

  35. Хочешь айфон? айфон цена выгодное предложение на новый iPhone в Санкт-Петербурге. Интернет-магазин i4you готов предложить вам решение, которое удовлетворит самые взыскательные требования. В нашем каталоге представлена обширная коллекция оригинальных устройств Apple. Каждый смартфон сопровождается официальной гарантией производителя сроком от года и более, что подтверждает его подлинность и надёжность.

  36. Строительные геоматериалы https://stsgeo-ekb.ru в Екатеринбурге с доставкой: геотекстиль, объемные георешётки, геосетки, геомембраны. Интернет-магазин для дорожного строительства, ландшафта и дренажа. Консультации специалистов и оперативный расчет.

  37. Нужна работа в США? курс трак диспетчера в сша по всему миру : работа с заявками и рейсами, переговоры на английском, тайм-менеджмент и сервис. Подходит новичкам и тем, кто хочет выйти на рынок труда США и зарабатывать в долларах.

  38. Новинний портал Ужгорода https://88000.com.ua головні події міста, політика, економіка, культура, спорт та життя городян. Оперативні новини, репортажі, інтерв’ю та аналітика. Все важливе про Ужгород в одному місці, зручно з телефону та комп’ютера.

  39. Оптовый дилер марокетплейс аккаунтов предоставляет доступ приобрести лучшие расходники для бизнеса. Особенность этого шопа — это наличии приватной вики-энциклопедии, где выложены секретные гайды по заливу. Мы подскажем, как правильно прогревать аккаунты, где обходить ЗРД а также использовать прокси. Покупая у нас, клиент получает не только логи, а также оперативную консультацию, страховку на момент покупки и самые приятные расценки на рынке.

  40. Hello there I am so delighted I found your weblog, I really found you by mistake, while I was searching on Google for something else, Anyhow I am here now and would just like to say cheers for a remarkable post and a all round exciting blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the superb work.

  41. Женский портал https://forthenaturalwoman.com о жизни, красоте и вдохновении: мода, уход за собой, здоровье, отношения, карьера и личные финансы. Полезные статьи, честные обзоры, советы экспертов и истории реальных женщин. Присоединяйтесь к сообществу и находите идеи для себя каждый день.

  42. Главные новости https://mynewsmonitor.com онлайн: самые важные события дня в сжатом и понятном формате. Политика, экономика, общество, мир, наука и культура. Краткие сводки, развёрнутые статьи, мнения экспертов и удобная лента, которая обновляется в режиме реального времени.

  43. Актуальные и главные https://allnews.in.ua новости: короткие заметки о срочных событиях и развёрнутые аналитические материалы. Помогаем понять, что произошло, почему это важно и к чему может привести. Лента обновляется в течение дня, чтобы вы не упустили ничего значимого.

  44. Главные новости https://newsline.in.ua онлайн: от срочных сообщений до глубоких обзоров и экспертных комментариев. Политика, экономика, безопасность, технологии и культура. Только проверенные факты и удобная лента, чтобы быстро ориентироваться во всём, что происходит.

  45. Все главные https://ua-news.com.ua новости в одном потоке: актуальные события, важные решения, прогнозы, мнения и аналитика. Помогаем понять, что стоит за заголовками, как события связаны между собой и почему они значимы. Обновления в режиме реального времени.

  46. Главные новости https://ukrnews.in.ua сегодня: политика, экономика, международные события, наука, культура и общественные темы. Оперативные сводки, анализ и подробные статьи. Полная картина дня, собранная в одном месте для удобного и быстрого чтения.

  47. Современный авто https://cargurus.com.ua портал: свежие новости, премьеры, обзоры новых и подержанных автомобилей, тест-драйвы, советы по эксплуатации и страхованию. Удобный поиск по маркам и моделям, рейтинги, подборки и полезные материалы для автолюбителей любого уровня.

  48. Новостной портал https://ua-today.com.ua с акцентом на достоверность: только проверенные источники, факты, комментарии экспертов и глубокая аналитика. Удобная лента событий, фильтры по темам, архив материалов и быстрый доступ к главному за день.

  49. Женский портал https://womanblog.com.ua с актуальными темами: тренды моды и макияжа, здоровье, фитнес, питание, саморазвитие и вдохновляющие истории. Ежедневные обновления, рекомендации специалистов и подборки идей для повседневной жизни, карьеры и личного счастья.

  50. Современный женский https://womanstyle.com.ua портал для тех, кто хочет успевать всё: стиль и красота, психология и отношения, материнство, дом, путешествия и работа. Практичные лайфхаки, чек-листы, подборки и мотивационные материалы, которые помогают заботиться о себе и жить в балансе.

  51. Современный новостной https://arguments.com.ua портал: главные новости дня, поясняющая аналитика, мнения экспертов и репортажи с мест событий. Лента в реальном времени, тематические рубрики, фото и видео. Помогаем разобраться в том, что происходит в стране и мире.

  52. Авто портал https://automotive-news.com.ua для тех, кто живёт автомобилями: новости автопрома, обзоры машин, тест-драйвы, советы по выбору и обслуживанию, сравнение моделей и подбор авто по параметрам. Фото, видео, мнения экспертов и реальные отзывы владельцев в одном месте.

  53. Строительный портал https://garden-story.com для профессионалов и частных мастеров: статьи и инструкции по ремонту, отделке и строительству, обзоры материалов и инструментов, калькуляторы, сметы, фото-примеры и советы экспертов. Всё, чтобы грамотно спланировать и выполнить работы.

  54. Портал о ремонте https://remont-sam.com и строительстве: от подготовки проекта и сметы до отделки и декора. Подробные инструкции, обзоры инструментов, рейтинги материалов, фото-примеры и лайфхаки. Удобная навигация по темам помогает быстро найти нужное решение для вашего объекта.

  55. Quel est le meilleur casino en ligne France pour jouer en toute sécurité en 2025 ? Il faut dire qu’aujourd’hui, trouver un site de casino en ligne fiable n’est pas une mince affaire. Il est très facile de se perdre parmi l’offre grandissante des casinos français en ligne. Mais pas de panique, nous sommes là ! Dans ce guide, nos experts vous présentent un classement complet pour vous aider à choisir le casino en ligne gratuit ou en argent réel qui correspond à vos attentes à 100 %. Chez nous, pas d’embrouille ni de coup fourré. Notre credo ? Vous faire découvrir les meilleurs casinos en ligne France du moment pour vous faire profiter pleinement de vos jeux de casino favoris. Suivez le guide !

  56. Fort de l’essor croissant des sites de casino en France, vous recherchez certainement le meilleur casino en ligne sécurisé et offrant des retraits rapides. Consciente de cela, notre équipe a pris le soin d’évaluer plusieurs casinos pour ne retenir que les meilleurs pour 2025, comme Unibet, Betclic ou Winamax. Nous avons analysé chaque casino en ligne en France selon les critères suivants : licence, sécurité, paiement, offres de bonus et jeux. Découvrez nos meilleures recommandations dans ce guide.

  57. Top 9 Meilleur casino en ligne pour les joueurs français: Winamax – idéal pour le poker et les tournois en ligne, Pokerstars – top pour affronter les joueurs de poker du monde entier, Wazamba – parfait pour les tournois réguliers attractifs, PMU – spécialisé sur le turf, mais propose aussi les paris sportifs, Unibet – idéal pour varier les jeux en ligne, FDJ – meilleure option pour les jeux de loterie et les jeux traditionnels français, Betclic – offre une interface intuitive et des paris combinés, Parionsweb – pensé pour les parieurs français traditionnels, Bwin – intéressant pour les paris sportifs et options hybrides. Le marché du casino en ligne en France connaît une croissance exceptionnelle en 2025. Avec plus de 3 millions de joueurs actifs, les casinos en ligne français offrent une expérience de jeu de plus en plus sophistiquée et sécurisée. Ce guide complet vous présente les meilleurs casinos en ligne disponibles en France, leurs bonus exclusifs, et toutes les informations essentielles pour jouer en toute sécurité.

  58. Портал о строительстве https://stroyline.com и ремонте: пошаговые инструкции, обзоры материалов, калькуляторы, идеи планировок и дизайна, советы мастеров и реальные примеры. Помогаем спланировать работы, избежать типичных ошибок и сэкономить время и бюджет.

  59. Онлайн-портал https://stroyinfo.com о строительстве и ремонте для владельцев квартир, домов и дач: полезные статьи, схемы, чек-листы, подбор материалов и техники, советы по отделке и инженерным системам. Всё, чтобы сделать ремонт своими руками или грамотно контролировать подрядчиков.

  60. Свежие новости https://ukrportal.com.ua Украины и мира: политика, экономика, общество, происшествия, аналитика и авторские материалы. Оперативные обновления 24/7, проверенные факты и объективная подача. Следите за ключевыми событиями, которые формируют будущее страны и всего мира.

  61. Top 9 Meilleur casino en ligne pour les joueurs français: Winamax – idéal pour le poker et les tournois en ligne, Pokerstars – top pour affronter les joueurs de poker du monde entier, Wazamba – parfait pour les tournois réguliers attractifs, PMU – spécialisé sur le turf, mais propose aussi les paris sportifs, Unibet – idéal pour varier les jeux en ligne, FDJ – meilleure option pour les jeux de loterie et les jeux traditionnels français, Betclic – offre une interface intuitive et des paris combinés, Parionsweb – pensé pour les parieurs français traditionnels, Bwin – intéressant pour les paris sportifs et options hybrides. Le marché du casino en ligne en France connaît une croissance exceptionnelle en 2025. Avec plus de 3 millions de joueurs actifs, les casinos en ligne français offrent une expérience de jeu de plus en plus sophistiquée et sécurisée. Ce guide complet vous présente les meilleurs casinos en ligne disponibles en France, leurs bonus exclusifs, et toutes les informations essentielles pour jouer en toute sécurité.

  62. Актуальные новости https://ukrmedia24.com.ua Украины и мира в одном месте: главные события дня, обзоры, комментарии экспертов, репортажи и эксклюзивные материалы. Политика, экономика, технологии, культура и спорт. Быстро, достоверно и удобно для ежедневного чтения.

  63. Все новости https://uanews24.com.ua Украины и мира — быстро, достоверно и понятно: события в политике, экономике, науке, культуре и спорте. Подробные обзоры, интервью и аналитика помогают увидеть полную картину происходящего. Ежедневные обновления и удобная навигация.

  64. Лента новостей https://uavesti.com.ua Украины и мира: самые важные события дня, актуальные темы, экспертные оценки и глубокая аналитика. Удобный формат, быстрые обновления, проверенные данные. Политика, общество, экономика, культура и мировые тенденции — всё на одной платформе.

Dejar un comentario

Responder a free porn_huEr Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *