Gulp 没有 Gulpfile.js

Gulp without Gulpfile.js

我继承了一个 gulp 项目。

我应该将 gulp v3 迁移到 v4。

但是,我在这个项目中根本找不到 gulpfile.js。 然而,每个教程都需要一个。我假设有一些设置,最后的开发人员知道哪些设置可能已经过时了?

这是我的文件夹结构:

所有任务都分组在“任务”文件夹中。我想说这些与根文件一起导出,实际上 运行 这些任务文件是我的 "gulpfiles"。

所有 gulp 任务都是 运行 使用:node platform/build.jsnode platform/deploy.js

我可以对这个和所有内容进行更改,我看到他如何调用它并编写任务。但我不知道他用来做这件事的范例,所以很难知道从哪里开始将它迁移到 gulp v4。

Gulp 我们正在使用的库:

"gulp": "3.9.1",
"gulp-autoprefixer": "6.0.0",
"gulp-bundle-assets": "2.29.0",
"gulp-concat": "2.6.1",
"gulp-csso": "3.0.1",
"gulp-data": "1.3.1",
"gulp-ejs": "3.3.0",
"gulp-empty": "0.1.2",
"gulp-eslint": "5.0.0",
"gulp-htmlmin": "5.0.1",
"gulp-if": "2.0.2",
"gulp-imagemin": "5.0.3",
"gulp-rename": "1.4.0",
"gulp-replace": "1.0.0",
"gulp-rimraf": "0.2.2",
"gulp-sass": "3.2.1",
"gulp-sass-lint": "1.4.0",
"gulp-sourcemaps": "2.6.5",
"gulp-string-replace": "1.1.2",
"gulp-strip-comments": "2.5.2",
"gulp-webserver": "0.9.1",

如何 运行s gulp任务:

// STEP 1 - process.env.NODE_ENV to staging
(!process.env.NODE_ENV) && (process.env.NODE_ENV = 'staging');


// STEP 2 - Prevent from running on NON-CI
if (!process.env.CI) {
  throw new Error('Build can only be performed in CI Environment');
}


// START PROCESS
const _ = require('lodash'),
  gulp = require('gulp'),
  Tasks = require('./tasks'),
  runSequence = require('run-sequence').use(gulp),
  // This of the tasks here is the order in which they will executed
  taskMap = {
    'clean:dist': Tasks.cleanDist,
    'clean:tmp': Tasks.cleanTemp,
    'copy:assets': Tasks.assetCopy,
    'bundle': Tasks.bundleAssets,
    'transpile': Tasks.transpile,
    'prefixCss': Tasks.autoprefixCss,
    'sitemap': Tasks.sitemap,
    'robots': Tasks.robots,
    'remove:htmlext': Tasks.removeHtmlExt
  };

// Create all tasks
_.forEach(taskMap, (value, key) => {
  gulp.task(key, value);
});

// @todo: Shift to using gulp.series when gulp is upgraded to v4
gulp.series(..._.keys(taskMap))();

我前一段时间继承了一个使用 Gulp 且没有 gulpfile 的项目。事实证明,它实际上位于托管在 npm 上的共享 gulpfile 中(如 https://github.com/jonathantneal/gulp-config-dev)。不太可能,但也许它在 package.json.

中被列为依赖项

gulpfile 实际上只是一段 Javascript 代码 - 它使用默认名称命名,因此当您 运行 gulp 默认情况下会找到它。

您实际上有 gulpfiles - 它们是您正在谈论的每个 .js 文件。

我怀疑他们之所以这样拆分,是因为有人认为每个任务中的任务太多,想以某种方式将它们分开 "topic"。