我无法让我的Hugo站点与Netlify一起部署。我想在部署之前使用Webpack编译我的静态资产(Sass和JS),并且我正在生成散列,以便在生成页面之前,hugo需要读取缓存。因此,在调用hugo
之前,yarn run build
需要完成运行。但是,从Netlify部署日志来看,这似乎没有发生。Netlify:如何以串行方式运行构建任务?
回答
为了确保在调用hugo
之前完成由yarn run build
调用的Webpack任务,我建议添加一个管道构建工具,比如Gulp。 Victor Hugo boilerplate完全使用此设置。摘录,它看起来像这样:
在包package.json
,该build
命令定义调用gulp build
:
"scripts": {
...
"build": "gulp build",
...
}
这将触发gulpfile.babel.js
,它定义了build
任务为一组的三个子任务, order:
gulp.task("build", ["css", "js", "hugo"]);
这些子任务也在gulpfile中定义。在这种情况下,css
被定义为运行PostCSS,并且js
运行Webpack。你可以定义这些以匹配你的资产管道,在文件的顶部导入你需要的任何插件。
对于hugo
任务,Victor Hugo直接在回购中包含Hugo二进制文件,这有助于便携性。或者,您可以关注this example并使用gulp-shell
插件在shell中运行hugo
命令。
免责声明:我为netlify工作。在一般情况下,如果人们不使用像gulp/grunt/make这样的工具(在构建环境中的选项是“你可以在Linux上运行的任何东西” - 参见https://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/),你可以连锁的命令在一起:
yarn run build && hugo
确保使用“& &”,以连锁的命令 - 这不仅运行它们串联,这也将确保在纱线行进构建一个问题会导致该构建被标记为失败,而不是运行hugo,并且可能发布破坏的构建,如果使用
yarn run build ; hugo
'纱线运行构建&& hugo'是我的确切命令,但我仍然遇到上述问题。 –
@ ErikBerkun-Drevnig那么别的东西可能是错的。对不起,我直到现在才看到这一点,但支持可以帮助调试。 – fool
- 1. 任何方式来构建MsTest何时运行测试方法?
- 2. 在Heroku上运行Grunt构建任务
- 3. 以并行方式运行任务maven install
- 4. 如何以编程方式从Restful方法或java类运行gradle构建任务
- 5. 以调试模式运行tomcatRun任务
- 6. 用构建任务执行任务
- 7. NDepend VSTS构建任务运行但不产生任何结果
- 8. 如何运行构建服务器
- 9. 如何在Eclipse中使用Gradle构建运行单个任务?
- 10. 如何在构建之前获取gradle来运行任务?
- 11. 如何在Xcode构建阶段运行Grunt任务?
- 12. 即使构建失败,如何运行Ant任务
- 13. 如何确保Gradle构建的processResources任务始终运行?
- 14. 如何从ant构建运行ruby脚本作为任务?
- 15. 解决方案构建后运行MsBuild任务(目标?)?
- 16. 如何在gradle中运行任务后运行集成任务?
- 17. 如何以顺序方式执行javaFX任务,服务
- 18. 如何运行构建codenameone构建?
- 19. 以编程方式运行Gulp 4任务
- 20. Capistrano 3.x从ruby以编程方式运行任务
- 21. 以编程方式运行Compass Grunt任务
- 22. 以编程方式运行多个gulp4任务
- 23. Ansible - 以with_together方式对主机运行任务
- 24. 以递归方式在阵列上运行Grunt任务
- 25. 如何并行运行任务?
- 26. Rubymotion,添加接口构建器:从gem运行rake任务给出“不知道如何构建任务ib”
- 27. 如何以编程方式运行testng?
- 28. 如何以被动方式运行Router.route()
- 29. 运行任务
- 30. 如何在android中以独立任务的方式运行活动?
我也会问你为什么认为你需要缓存。除非您通过覆盖默认值来更改缓存指令,否则Netlify将为您处理缓存失效并做得很好。 https://www.netlify.com/blog/2017/02/23/better-living-through-caching/描述如何。 – fool
我认为这是更好的解决方案/答案,因为它不限制在Windows用户进行开发时使用的shell。 – talves
@fool你能解释一下你在这种情况下通过cachebusting的意思吗 – talves