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