Gulp 没有 Gulpfile.js
Gulp without Gulpfile.js
我继承了一个 gulp 项目。
我应该将 gulp v3 迁移到 v4。
但是,我在这个项目中根本找不到 gulpfile.js
。
然而,每个教程都需要一个。我假设有一些设置,最后的开发人员知道哪些设置可能已经过时了?
这是我的文件夹结构:
所有任务都分组在“任务”文件夹中。我想说这些与根文件一起导出,实际上 运行 这些任务文件是我的 "gulpfiles"。
所有 gulp 任务都是 运行 使用:node platform/build.js
或 node 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"。
我继承了一个 gulp 项目。
我应该将 gulp v3 迁移到 v4。
但是,我在这个项目中根本找不到 gulpfile.js
。
然而,每个教程都需要一个。我假设有一些设置,最后的开发人员知道哪些设置可能已经过时了?
这是我的文件夹结构:
所有任务都分组在“任务”文件夹中。我想说这些与根文件一起导出,实际上 运行 这些任务文件是我的 "gulpfiles"。
所有 gulp 任务都是 运行 使用:node platform/build.js
或 node 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"。