[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1902":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":27,"discoverSource":28},1902,"gulp","gulpjs\u002Fgulp","gulpjs","A toolkit to automate & enhance your workflow","https:\u002F\u002Fgulpjs.com",null,"JavaScript",32962,4147,1005,30,0,2,5,71.5,"MIT License",false,"master",[],"2026-06-12 04:00:11","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgulpjs.com\">\n    \u003Cimg height=\"257\" width=\"114\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fgulpjs\u002Fartwork\u002Fmaster\u002Fgulp-2x.png\">\n  \u003C\u002Fa>\n  \u003Cp align=\"center\">The streaming build system\u003C\u002Fp>\n\u003C\u002Fp>\n\n[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url]\n\n## What is gulp?\n\n- **Automation** - gulp is a toolkit that helps you automate painful or time-consuming tasks in your development workflow.\n- **Platform-agnostic** - Integrations are built into all major IDEs and people are using gulp with PHP, .NET, Node.js, Java, and other platforms.\n- **Strong Ecosystem** - Use npm modules to do anything you want + over 3000 curated plugins for streaming file transformations.\n- **Simple** - By providing only a minimal API surface, gulp is easy to learn and simple to use.\n\n## Installation\n\nFollow our [Quick Start guide][quick-start].\n\n## Roadmap\n\nFind out about all our work-in-progress and outstanding issues at https:\u002F\u002Fgithub.com\u002Forgs\u002Fgulpjs\u002Fprojects.\n\n## Documentation\n\nCheck out the [Getting Started guide][getting-started-guide] and [API docs][api-docs] on our website!\n\n__Excuse our dust! All other docs will be behind until we get everything updated. Please open an issue if something isn't working.__\n\n## Sample `gulpfile.js`\n\nThis file will give you a taste of what gulp does.\n\n```js\nvar gulp = require('gulp');\nvar less = require('gulp-less');\nvar babel = require('gulp-babel');\nvar concat = require('gulp-concat');\nvar uglify = require('gulp-uglify');\nvar rename = require('gulp-rename');\nvar cleanCSS = require('gulp-clean-css');\nvar del = require('del');\n\nvar paths = {\n  styles: {\n    src: 'src\u002Fstyles\u002F**\u002F*.less',\n    dest: 'assets\u002Fstyles\u002F'\n  },\n  scripts: {\n    src: 'src\u002Fscripts\u002F**\u002F*.js',\n    dest: 'assets\u002Fscripts\u002F'\n  }\n};\n\n\u002F* Not all tasks need to use streams, a gulpfile is just another node program\n * and you can use all packages available on npm, but it must return either a\n * Promise, a Stream or take a callback and call it\n *\u002F\nfunction clean() {\n  \u002F\u002F You can use multiple globbing patterns as you would with `gulp.src`,\n  \u002F\u002F for example if you are using del 2.0 or above, return its promise\n  return del([ 'assets' ]);\n}\n\n\u002F*\n * Define our tasks using plain functions\n *\u002F\nfunction styles() {\n  return gulp.src(paths.styles.src)\n    .pipe(less())\n    .pipe(cleanCSS())\n    \u002F\u002F pass in options to the stream\n    .pipe(rename({\n      basename: 'main',\n      suffix: '.min'\n    }))\n    .pipe(gulp.dest(paths.styles.dest));\n}\n\nfunction scripts() {\n  return gulp.src(paths.scripts.src, { sourcemaps: true })\n    .pipe(babel())\n    .pipe(uglify())\n    .pipe(concat('main.min.js'))\n    .pipe(gulp.dest(paths.scripts.dest));\n}\n\nfunction watch() {\n  gulp.watch(paths.scripts.src, scripts);\n  gulp.watch(paths.styles.src, styles);\n}\n\n\u002F*\n * Specify if tasks run in series or parallel using `gulp.series` and `gulp.parallel`\n *\u002F\nvar build = gulp.series(clean, gulp.parallel(styles, scripts));\n\n\u002F*\n * You can use CommonJS `exports` module notation to declare tasks\n *\u002F\nexports.clean = clean;\nexports.styles = styles;\nexports.scripts = scripts;\nexports.watch = watch;\nexports.build = build;\n\u002F*\n * Define default task that can be called by just running `gulp` from cli\n *\u002F\nexports.default = build;\n```\n\n## Use latest JavaScript version in your gulpfile\n\nGulp provides a wrapper that will be loaded in your ESM code, so you can name your gulpfile as `gulpfile.mjs` or with `\"type\": \"module\"` specified in your `package.json` file.\n\nAnd here's the same sample from above written in **ESNext**.\n\n```js\nimport { src, dest, watch } from 'gulp';\nimport less from 'gulp-less';\nimport babel from 'gulp-babel';\nimport concat from 'gulp-concat';\nimport uglify from 'gulp-uglify';\nimport rename from 'gulp-rename';\nimport cleanCSS from 'gulp-clean-css';\nimport {deleteAsync} from 'del';\n\nconst paths = {\n  styles: {\n    src: 'src\u002Fstyles\u002F**\u002F*.less',\n    dest: 'assets\u002Fstyles\u002F'\n  },\n  scripts: {\n    src: 'src\u002Fscripts\u002F**\u002F*.js',\n    dest: 'assets\u002Fscripts\u002F'\n  }\n};\n\n\u002F*\n * For small tasks you can export arrow functions\n *\u002F\nexport const clean = () => deleteAsync([ 'assets' ]);\n\n\u002F*\n * You can also declare named functions and export them as tasks\n *\u002F\nexport function styles() {\n  return src(paths.styles.src)\n    .pipe(less())\n    .pipe(cleanCSS())\n    \u002F\u002F pass in options to the stream\n    .pipe(rename({\n      basename: 'main',\n      suffix: '.min'\n    }))\n    .pipe(dest(paths.styles.dest));\n}\n\nexport function scripts() {\n  return src(paths.scripts.src, { sourcemaps: true })\n    .pipe(babel())\n    .pipe(uglify())\n    .pipe(concat('main.min.js'))\n    .pipe(dest(paths.scripts.dest));\n}\n\n \u002F*\n  * You could even use `export as` to rename exported tasks\n  *\u002F\nfunction watchFiles() {\n  watch(paths.scripts.src, scripts);\n  watch(paths.styles.src, styles);\n}\nexport { watchFiles as watch };\n\nconst build = gulp.series(clean, gulp.parallel(styles, scripts));\n\u002F*\n * Export a default task\n *\u002F\nexport default build;\n```\n\n## Incremental Builds\n\nYou can filter out unchanged files between runs of a task using\nthe `gulp.src` function's `since` option and `gulp.lastRun`:\n```js\nconst paths = {\n  ...\n  images: {\n    src: 'src\u002Fimages\u002F**\u002F*.{jpg,jpeg,png}',\n    dest: 'build\u002Fimg\u002F'\n  }\n}\n\nfunction images() {\n  return gulp.src(paths.images.src, {since: gulp.lastRun(images)})\n    .pipe(imagemin())\n    .pipe(gulp.dest(paths.images.dest));\n}\n\nfunction watch() {\n  gulp.watch(paths.images.src, images);\n}\n```\nTask run times are saved in memory and are lost when gulp exits. It will only\nsave time during the `watch` task when running the `images` task\nfor a second time.\n\n## Want to contribute?\n\nAnyone can help make this project better - check out our [Contributing guide](\u002FCONTRIBUTING.md)!\n\n\u003C!-- prettier-ignore-start -->\n[quick-start]: https:\u002F\u002Fgulpjs.com\u002Fdocs\u002Fen\u002Fgetting-started\u002Fquick-start\n[getting-started-guide]: https:\u002F\u002Fgulpjs.com\u002Fdocs\u002Fen\u002Fgetting-started\u002Fquick-start\n[api-docs]: https:\u002F\u002Fgulpjs.com\u002Fdocs\u002Fen\u002Fapi\u002Fconcepts\n[esm-module]: https:\u002F\u002Fgithub.com\u002Fstandard-things\u002Fesm\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- prettier-ignore-start -->\n[downloads-image]: https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fgulp.svg?style=flat-square\n[npm-url]: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fgulp\n[npm-image]: https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fgulp.svg?style=flat-square\n\n[ci-url]: https:\u002F\u002Fgithub.com\u002Fgulpjs\u002Fgulp\u002Factions?query=workflow:dev\n[ci-image]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fgulpjs\u002Fgulp\u002Fdev.yml?branch=master&style=flat-square\n\n[coveralls-url]: https:\u002F\u002Fcoveralls.io\u002Fr\u002Fgulpjs\u002Fgulp\n[coveralls-image]: https:\u002F\u002Fimg.shields.io\u002Fcoveralls\u002Fgulpjs\u002Fgulp\u002Fmaster.svg?style=flat-square\n\u003C!-- prettier-ignore-end -->\n","gulp 是一个用于自动化和增强开发工作流的工具包。它通过提供一系列简洁易用的 API，帮助开发者自动执行诸如代码压缩、样式编译等耗时任务。基于 Node.js 构建，支持跨平台使用，并且可以与 PHP、.NET 等多种技术栈无缝集成。强大的 npm 生态系统为 gulp 提供了超过 3000 个插件，使得文件转换变得极其灵活。适合于前端开发环境下的持续集成设置、快速原型构建以及日常开发任务的自动化处理，能够显著提高团队生产力。","2026-06-11 02:46:43","top_all"]