Netlify:如何以串口方式运行构建任务?

时间:2017-08-05 00:43:27

标签: static-site hugo netlify

我无法让我的Hugo网站与Netlify一起部署。我想在部署之前使用Webpack编译我的静态资产(Sass和JS),并且我在生成页面之前生成了用于缓存破坏的哈希需要读取的哈希。因此yarn run build需要在调用hugo之前完成运行。但是,从Netlify部署日志判断,这似乎不会发生。

2 个答案:

答案 0 :(得分:7)

免责声明:我为netlify工作。

Jessica的回答几乎肯定对你的用例更好,但总的来说,如果人们不使用像gulp / grunt / make这样的工具(构建环境中的选项是“你可以在linux上运行的任何东西” - 请参阅{ {3}}),您可以将命令链接在一起:

yarn run build && hugo

确保使用“&&”链接命令 - 这不仅会连续运行它们,还会确保纱线运行构建中的问题会导致构建被标记为失败,而不是运行hugo并且可能发布破坏的构建,如果你使用

yarn run build ; hugo

答案 1 :(得分:2)

为了确保yarn run build调用的Webpack任务在调用hugo之前完成,我建议添加管道构建工具,如Gulp。 Victor Hugo boilerplate正好使用此设置。摘录,它看起来像这样:

在包package.json中,build命令被定义为调用gulp build

  "scripts": {
    ...
    "build": "gulp build",
    ...
  }

这会触发gulpfile.babel.js,它按顺序将build任务定义为一组三个子任务:

gulp.task("build", ["css", "js", "hugo"]);

这些子任务也在gulpfile中定义。在这种情况下,css定义为运行PostCSS,js定义运行Webpack。您可以定义这些以匹配您的资产管道,导入文件顶部所需的任何插件。

对于hugo任务,Victor Hugo直接在repo中包含Hugo二进制文件,这有助于实现可移植性。或者,您可以关注this example并使用gulp-shell插件在shell中运行hugo命令。