我对 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 中的一个错误......它对任何人都有效吗?
这是一个已报告的问题,请参阅 src() 不适用于通配符 (4.0.2 -> 5.0.0)。
不幸的是,此时唯一的解决方案是降级到 v4+。 我也看到同样的问题。