Netlify:如何 运行 串行构建任务?
Netlify: How to run build tasks in serial?
我无法使用 Netlify 部署我的 Hugo 站点。我想在部署之前使用 Webpack 编译我的静态资产(Sass 和 JS),并且我正在为 hugo 在生成页面之前需要读取的缓存破坏生成哈希。因此 yarn run build
需要在调用 hugo
之前完成 运行。然而,从 Netlify 部署日志来看,这似乎并没有发生。
为了确保 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
命令
免责声明:我为 netlify 工作。
Jessica 的答案几乎肯定更适合您的用例,但总的来说,如果人们不使用像 gulp/grunt/make 这样的工具(构建环境中的选项主要是 "anything you can run on linux" - 请参阅 https://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/), 你可以将命令链接在一起:
yarn run build && hugo
确保使用“&&”来链接命令——这不仅会 运行 它们串行,还会确保 yarn 运行 构建中的问题会导致构建被标记作为一个失败,而不是 运行ning hugo 并且可能发布一个损坏的构建,如果你使用
yarn run build ; hugo
我无法使用 Netlify 部署我的 Hugo 站点。我想在部署之前使用 Webpack 编译我的静态资产(Sass 和 JS),并且我正在为 hugo 在生成页面之前需要读取的缓存破坏生成哈希。因此 yarn run build
需要在调用 hugo
之前完成 运行。然而,从 Netlify 部署日志来看,这似乎并没有发生。
为了确保 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
命令
免责声明:我为 netlify 工作。
Jessica 的答案几乎肯定更适合您的用例,但总的来说,如果人们不使用像 gulp/grunt/make 这样的工具(构建环境中的选项主要是 "anything you can run on linux" - 请参阅 https://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/), 你可以将命令链接在一起:
yarn run build && hugo
确保使用“&&”来链接命令——这不仅会 运行 它们串行,还会确保 yarn 运行 构建中的问题会导致构建被标记作为一个失败,而不是 运行ning hugo 并且可能发布一个损坏的构建,如果你使用
yarn run build ; hugo