如何在Netlify上运行Gulp任务
嗨,我正试着在netlify上运行一些构建Hugo web的任务 我想知道如何在netlify上运行串行吞咽任务 顺便说一下,这是我的gulpfile.js如何在Netlify上运行Gulp任务,gulp,hugo,netlify,Gulp,Hugo,Netlify,嗨,我正试着在netlify上运行一些构建Hugo web的任务 我想知道如何在netlify上运行串行吞咽任务 顺便说一下,这是我的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 min
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中运行我的所有吞咽任务?您可以像这样将任务串在一起: 使用NPM添加另一个插件: 然后喝一大口 本页中有一个关于运行顺序的部分将提供帮助:
在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命令就可以了。在示例中,
将是一个有效的命令gulphtmlclean&&hugo&&gulptojson
中的命令将覆盖站点管理命令netlify.toml
hugo
更改为npm-run-gulptask
,或者用您想要的任何名称命名它"scripts": {
"gulptask": "hugo; gulp templates",
},
出于各种原因,我会避免使用gulp.start,而不是插件的文档部分。请改为查看并在所有任务中添加返回语句,否则您将遇到问题。@Mark:我更正了答案,并在过程中学到了一些东西-谢谢@Greg谢谢你的回答,但我的意思是我需要在netlify上运行gulp任务,而不是在我的本地环境中。谢谢你,正如我之前提到的,我也在同一时间构建Hugo,所以如果我将
netlify.toml
和netlify控制台上的命令设置为gulp build
我的Hugo将如何构建?我想实现的流程是安装一些gulp,构建hugo,然后运行gulp任务。在您最初的问题中没有提到netlify.toml
。另外,您的答案是基于对netlify上部署过程如何工作的误解。没有理由安装依赖项,这是在Netlify启动流程时作为部署的一部分为您完成的。在Netlify上的构建命令中应使用本地用于构建生产Hugo站点的相同命令,以获得最佳实践。这将帮助您在部署之前测试所有命令。这不会产生可靠的结果。将命令链接到“;”允许早期命令(例如,npm安装,如@talves所述,如果您有package.json安装权限,则无需执行此操作)失败,然后后续任务(gulp模板)成功-这意味着我们将发布一个损坏的站点。始终使用&&链接,但也要-修复你的package.json,这样你就不需要npm安装步骤)谢谢你提醒我,我从任务中删除了npm安装,但仍然使用代码>成功部署,但当我将链更改为&&
失败时,有什么建议吗?
"scripts": {
"gulptask": "hugo; gulp templates",
},