【问题标题】:Netlify: How to run build tasks in serial?Netlify:如何串行运行构建任务?
【发布时间】:2018-01-13 00:06:45
【问题描述】:

我无法使用 Netlify 部署我的 Hugo 网站。我想在部署之前使用 Webpack 编译我的静态资产(Sass 和 JS),并且我正在生成用于缓存破坏的哈希值,hugo 在生成页面之前需要读取这些哈希值。因此yarn run build 需要在hugo 被调用之前完成运行。然而,从 Netlify 部署日志来看,这似乎并没有发生。

【问题讨论】:

    标签: static-site hugo netlify


    【解决方案1】:

    为了确保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 将 Hugo 二进制文件直接包含在 repo 中,这有助于可移植性。或者,您可以关注this example 并使用gulp-shell 插件在shell 中运行hugo 命令。

    【讨论】:

    【解决方案2】:

    免责声明:我为 netlify 工作。

    Jessica 的答案几乎肯定更适合您的用例,但总的来说,如果人们不使用 gulp/grunt/make 之类的工具(构建环境中的选项主要是“您可以在 linux 上运行的任何东西” - 请参阅 @ 987654321@),您可以将命令链接在一起:

    yarn run build && hugo
    

    确保使用“&&”链接命令 - 这不仅会连续运行它们,还会确保 yarn run build 中的问题会导致构建被标记为失败,而不是运行 hugo 和如果您使用

    ,可能会发布损坏的构建
    yarn run build ; hugo
    

    【讨论】:

    • yarn run build && hugo 是我的确切命令,但我仍然遇到上述问题。
    • @ErikBerkun-Drevnig 那么其他事情可能是错误的。抱歉,我直到现在才看到这个,但支持人员可以帮助调试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2023-03-23
    • 2015-10-18
    • 2012-05-30
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多