3

嗨,我正在尝试在 netlify 上运行一些 gulp 任务以构建 Hugo web。

我想知道如何在 netlify 上运行串行 gulp 任务,

顺便说一句,这是我的 gulpfile.js

var gulp = require('gulp');
var removeEmptyLines = require('gulp-remove-empty-lines');
var prettify = require('gulp-html-prettify');
var rm = require( 'gulp-rm' );
var minifyInline = require('gulp-minify-inline');

gulp.task('tojson', function () {
  gulp.src('public/**/*.html')
  .pipe(removeEmptyLines())
  .pipe(gulp.dest('public/./'));
});

gulp.task('htmlClean', function () {
  gulp.src('public/**/*.html')
  .pipe(removeEmptyLines({
    removeComments: true
  }))
  .pipe(gulp.dest('public/./'));
});

gulp.task('templates', function() {
  gulp.src('public/**/*.html')
    .pipe(prettify({indent_char: ' ', indent_size: 2}))
    .pipe(gulp.dest('public/./'))
});

gulp.task('minify-inline', function() {
  gulp.src('public/**/*.html')
    .pipe(minifyInline())
    .pipe(gulp.dest('public/./'))
});

我应该把命令放在哪里来在 Netlify 中运行我的所有 gulps 任务?

4

2 回答 2

4

在 Netlify 中有两个地方可以设置你的构建命令。

管理员选项

将您的命令放在站点设置部分下的在线管理员中,然后转到构建和部署(部署设置)并更改构建命令:

在此处输入图像描述

Netlify 配置文件 (netlify.toml) 选项

将文件编辑/添加netlify.toml到存储库的根目录,并将构建命令放入要定位的上下文中。

netlify.toml

# global context
[build]
  publish = "public"
  command = "gulp build"
# build a preview (optional)
[context.deploy-preview]
  command = "gulp build-preview"
# build a branch with debug (optional)
[context.branch-deploy]
  command = "gulp build-debug"

笔记:

  • 命令可以是任何有效的命令字符串。如果您不想创建 gulp 序列来运行它们,则序列化 gulp 命令可以正常工作。例如,gulp htmlClean && hugo && gulp tojson将是一个有效的命令。
  • 中的命令netlify.toml将覆盖站点管理命令。
于 2018-01-30T19:10:37.930 回答
0

您可以像这样将您的任务串在一起:

使用 NPM 添加另一个插件: https ://www.npmjs.com/package/run-sequence

var runSequence = require('run-sequence');

gulp.task('default', function (callback) {
  runSequence(['tojson', 'htmlClean', 'templates', 'minify-inline'],
    callback
  )
})

然后运行 ​​$ gulp

此页面上有一个关于运行序列的部分会有所帮助: https ://css-tricks.com/gulp-for-beginners/

于 2018-01-30T13:58:28.313 回答