Задание Gulp 4 выполняется, но ничего не делает - PullRequest
0 голосов
/ 07 мая 2019

У меня проблемы с настройкой задания Gulp 4. Когда я запускаю задание по умолчанию, которое просматривает мои файлы и запускает функции, все работает нормально. Проблема заключается в том, что когда я пытаюсь запустить gulp prod или любое другое задание, которое не выполняется по умолчанию, оно не показывает ошибок, но папки или файлы не создаются.

Это тема WordPress, и я пытаюсь настроить задачи разработки и производства. Я использую узел 10.15.3, npm 6.4.1, gulp-cli 2.2.0 и gulp 4.0.0. Я попытался упростить функции и / или задачи, я прочитал все вопросы с такими проблемами, но ничего не помогло.

Мой gulpfile, как сейчас:

const themename = "tree"
const { src, dest, watch, series, parallel } = require("gulp"),
  autoprefixer = require("gulp-autoprefixer"),
  browserSync = require("browser-sync").create(),
  sass = require("gulp-sass"),
  cleanCSS = require("gulp-clean-css"),
  sourcemaps = require("gulp-sourcemaps"),
  concat = require("gulp-concat"),
  imagemin = require("gulp-imagemin"),
  changed = require("gulp-changed"),
  babel = require("gulp-babel"),
  uglify = require("gulp-uglify"),
  lineec = require("gulp-line-ending-corrector"),
  rename = require("gulp-rename")

const root = `../${themename}`,
  srcs = {
    css: `${root}/src/css/**/*.css`,
    sass: `${root}/sass`,
    js: `${root}/src/js/app/**/*.js`,
    img: `${root}/src/images/**/*.{jpe?g|gif|png|svg}`
  },
  dist = {
    css: `${root}/dist/css/`,
    js: `${root}/dist/js/`,
    img: `${root}/dist/images/`
  },
  devPaths = {
    css: [`${root}/dev/css/`],
    js: `${root}/dev/js/`
  },
  watchFiles = {
    php: `${root}/**/*.php`,
    sass: `${srcs.sass}/**/*.scss`
  }

function devSass() {
  return src(`${srcs.sass}/style.scss`)
    .pipe(sourcemaps.init({ loadMaps: true }))
    .pipe(sass({ outputStyle: "expanded" }).on("error", sass.logError))
    .pipe(autoprefixer("last 2 versions"))
    .pipe(sourcemaps.write())
    .pipe(lineec())
    .pipe(dest(devPaths.css))
}

function devCss() {
  return src([`${srcs.css}`, `${devPaths.css}/style.css`])
    .pipe(sourcemaps.init({ loadMaps: true, largeFile: true }))
    .pipe(concat("all.css"))
    .pipe(sourcemaps.write(`${devPaths.css}/maps/`))
    .pipe(lineec())
    .pipe(dest(devPaths.css))
}

function devJs() {
  return src(srcs.js)
    .pipe(babel({ presets: ["@babel/env"] }))
    .pipe(lineec())
    .pipe(dest(devPaths.js))
}

function prodSass() {
  return src(`${srcs.sass}/style.scss`)
    .pipe(sass({ outputStyle: "compressed" }).on("error", sass.logError))
    .pipe(autoprefixer("last 2 versions"))
    .pipe(lineec())
    .pipe(dest(dist.css))()
}

function prodCss() {
  return src([srcs.css, devPaths.css])
    .pipe(concat("all.min.css"))
    .pipe(cleanCSS())
    .pipe(lineec())
    .pipe(dest(dist.css))
}

function prodJs() {
  return src(srcs.js)
    .pipe(rename({ suffix: ".min" }))
    .pipe(babel({ presets: ["@babel/env"] }))
    .pipe(uglify())
    .pipe(dest(dist.js))
}

function imgOpt() {
  return src(srcs.img)
    .pipe(changed(dist.img))
    .pipe(
      imagemin([
        imagemin.gifsicle({ interlaced: true }),
        imagemin.jpegtran({ progressive: true }),
        imagemin.optipng({ optimizationLevel: 5 })
      ])
    )
    .pipe(gulp.dest(dist.img))
}

function devWatchers() {
  browserSync.init({
    proxy: "localhost/tree/",
    open: true,
    notify: false
  })

  watch(watchFiles.sass, series([devSass, devCss]))
  watch(srcs.js, devJs)
  watch([srcs.img, dist.img]).on("change", browserSync.reload)
  watch(watchFiles.php).on("change", browserSync.reload)
}

function prod() {
  return parallel(prodJs, imgOpt, series(prodSass, prodCss))
}

exports.prod = prod
exports.devWatchers = devWatchers
exports.default = devWatchers

Я ожидаю, что после запуска задачи prod папка dist будет заполнена, но на самом деле ничего не происходит. Еще раз, задание по умолчанию выполняет все.

1 Ответ

0 голосов
/ 08 мая 2019

Итак, я пересмотрел всю структуру папок и все строки внутри gulpfile.Это была какая-то проблема с путями.Я прошу прощения, если это не должно быть ответом.Теперь все отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...