如果 src 有多个项目,Gulp 5 无法编译

问题描述 投票:0回答:1

我对 Gulp 有一个问题,因为如果 SRC 中有多个特定元素,它就无法编译。我需要在 JS、PHP 和 IMG 上编译多个文件。

节点:23.1.0 国家公共管理:10.9.1 咕噜咕噜:5.0 Gulp 命令行:3.0.0

这是我的代码

import gulp from "gulp";
import * as sass from "sass";
import gulpSass from "gulp-sass";
const scss = gulpSass(sass);
import prefix from "gulp-autoprefixer";
import cssmin from "gulp-cssmin";
import concat from "gulp-concat";
import uglify from "gulp-uglify";
import babel from "gulp-babel";
import webp from "gulp-webp";
import browserSync from "browser-sync";

const { src, dest, series, parallel, watch } = require("gulp");

async function gulpPHP() {
  return src("./dist/**/*.php").pipe(browserSync.stream());
}

async function gulpScss() {
  return src("./src/scss/main.scss")
    .pipe(scss({ outputStyle: "compressed" }).on("error", scss.logError))
    .pipe(prefix())
    .pipe(dest("./dist/css/"))
    .pipe(browserSync.stream());
}

async function gulpJS() {
  return src("./src/sjs/**/*.js")
    .pipe(babel({ presets: ["@babel/preset-env"] }))
    .pipe(concat("main.js"))
    .pipe(uglify())
    .pipe(dest("./dist/js/"))
    .pipe(browserSync.stream());
}

async function gulpImg() {
  return gulp
    .src([
      "src/images/**/*.{jpg,jpeg,webp,png}",
      "src/images/*.{jpg,jpeg,webp,png}",
    ])
    .pipe(webp())
    .pipe(dest("dist/images/"))
    .pipe(browserSync.stream());
}

function gulpWatch() {
  watch("./src/scss/**/*.scss", gulpScss);
  watch("./src/sjs/**/*.js", gulpJS);
  watch("./dist/**/*.php", gulpPHP);
  watch(
    ["src/images/**/*.{jpg,jpeg,webp,png}", "src/images/*.{jpg,jpeg,webp,png}"],
    gulpImg
  );
}

function gulpSync() {
  browserSync.init({
    proxy: "damas.test",
  });
}

exports.default = series(
  gulpScss,
  gulpJS,
  gulpPHP,
  gulpImg,
  parallel(gulpWatch, gulpSync)
);

唯一能正确编译 gulp 的是 SCSS,因为有直接文件。

奇怪的是 gulp 可以工作但不能编译/创建文件:

[15:52:53] Starting 'gulpJS'...
[15:52:53] Finished 'gulpJS' after 4.82 ms
[15:52:56] Starting 'gulpJS'...
[15:52:56] Finished 'gulpJS' after 3.53 ms

在 JS 中我也尝试将其放入 SRC 但仍然不起作用:

src(["./src/sjs/components/*.js", "./src/sjs/main.js"])

老实说,我不知道还有什么可以尝试让它工作,我担心这是 gulp 版本 5 中的一个错误......它对任何人都有效吗?

node.js gulp
1个回答
0
投票

这是一个已报告的问题,请参阅 src() 不适用于通配符 (4.0.2 -> 5.0.0)

不幸的是,此时唯一的解决方案是降级到 v4+。 我也看到同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.