We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
var gulp = require("gulp"); var path = require("path"); var rename = require("gulp-rename"); var less = require("gulp-less"); var postcss = require("gulp-postcss"); var changed = require("gulp-changed"); var autoprefixer = require("autoprefixer"); var clear = require("gulp-clean"); var del = require("del"); var sourcemaps = require("gulp-sourcemaps"); var jsonTransform = require("gulp-json-transform"); var projectConfig = require("./package.json"); var alias = require("gulp-ts-path-alias"); const through = require("through2"); const dependency = require("dependency-tree"); const webpack = require("webpack"); const readPkg = require("read-pkg-up"); const matches = require("match-requires"); function handlerRelivePath(relative) { if (path.sep === "\\") { relative = relative.split(path.sep).join("/"); } return /^\./.test(relative) ? relative : `./${relative}`; } // 项目路径 var option = { base: "src", allowEmpty: true }; var dist = __dirname + "/dist"; var copyPath = ["src/**/!(_)*.*", "!src/**/*.less", "!src/**/*.ts"]; var lessPath = ["src/**/*.less", "src/app.less"]; var watchLessPath = ["src/**/*.less", "src/css/**/*.less", "src/app.less"]; // 清空目录 gulp.task("clear", () => { return gulp.src(dist, { allowEmpty: true }).pipe(clear()); }); // 复制不包含less和图片的文件 gulp.task("copy", () => { return gulp.src(copyPath, option).pipe(gulp.dest(dist)); }); // 复制不包含less和图片的文件(只改动有变动的文件) gulp.task("copyChange", () => { return gulp .src(copyPath, option) .pipe(changed(dist)) .pipe(gulp.dest(dist)); }); gulp.task("npm", () => { return gulp .src("dist/**/*.js") .pipe( npm({ dest: "dist" }) ) .pipe(gulp.dest("dist")); }); // 编译less gulp.task("less", () => { return gulp .src(lessPath, option) .pipe( less().on("error", function (e) { console.error(e.message); this.emit("end"); }) ) .pipe(postcss([autoprefixer])) .pipe( rename(function (path) { path.extname = ".wxss"; }) ) .pipe(gulp.dest(dist)); }); // 编译less(只改动有变动的文件) gulp.task("lessChange", () => { return gulp .src(lessPath, option) .pipe(changed(dist)) .pipe( less().on("error", function (e) { console.error(e.message); this.emit("end"); }) ) .pipe(postcss([autoprefixer])) .pipe( rename(function (path) { path.extname = ".wxss"; }) ) .pipe(gulp.dest(dist)); }); // 更改project.config.json的miniprogramRoot,并将其打包到dist目录 gulp.task("addProjectConfig", () => { return gulp.src("project.config.json") .pipe( jsonTransform(function (data, file) { data.miniprogramRoot = "/"; return data; }) ) .pipe(gulp.dest("dist")); }); // 监听 gulp.task("watch", () => { var watcher = gulp.watch(copyPath, gulp.series("npm", "copyChange")); gulp.watch(watchLessPath, gulp.series("less")); // Change // 监听dist目录,有变动就执行npm // gulp.watch(tsPath, gulp.series('npm')); watcher.on("change", function (event) { if (event.type === "deleted") { var filepath = event.path; var filePathFromSrc = path.relative(path.resolve("src"), filepath); // Concatenating the 'build' absolute path used by gulp.dest in the scripts task var destFilePath = path.resolve("dist", filePathFromSrc); // console.log({filepath, filePathFromSrc, destFilePath}) del.sync(destFilePath); } }); }); // 开发并监听 gulp.task( "default", gulp.series( // sync gulp.parallel( "copy", "less" ), "npm", "watch" ) ); // 上线 gulp.task( "build", gulp.series( // sync "clear", gulp.parallel( // async "copy", "less" "addProjectConfig" ), "npm" ) );
The text was updated successfully, but these errors were encountered:
No branches or pull requests
The text was updated successfully, but these errors were encountered: