在Netlify上部署GatsbyJS静态站点时,如何在执行build命令之前运行npm脚本?

时间:2019-07-26 08:39:21

标签: node.js git netlify

我有一个名为clone-or-pull的npm脚本,我想在Netlify运行build命令部署使用GatsbyJS构建的静态站点之前运行(通过npm run clone-or-pull)。

顺便说一句-由于我的静态网站是使用GatsbyJS构建的,因此Netlify的构建命令默认运行为gatsby build但是,我希望Netlify在执行npm run clone-or-pull之前先执行gatbsy build

那么在Netlify上部署GatsbyJS静态站点时,如何在执行构建命令之前运行npm脚本?


仅供参考-我想执行npm run clone-or-pull来克隆我的可重用资产回购,其中包含我的gatbsyjs静态站点所需的必要sass / image / font资源。

1 个答案:

答案 0 :(得分:0)

在Netlify上部署站点时,我想出了如何在执行构建命令(本例中为gatbsy build)之前运行自定义npm脚本的方法。但是在展示解决方案之前,这里是我的package.json的摘要:

GatsbyJS已经创建了一个名为build的npm脚本,该脚本运行gatsby build命令:

package.json:

  "build": "gatsby build",
  "clone-or-pull": "node clone-or-pull-assets.js"

这是我的解决方法:

  1. 创建执行prebuild npm脚本的clone-or-pull npm脚本
  2. 创建一个netlify.toml文件,该文件指定运行npm run build而不是gatsy build(因为npm run build将运行prebuild脚本,然后运行gatsby build

1。在package.json中创建prebuild npm脚本

  "prebuild": "npm run clone-or-pull",
  "build": "gatsby build",
  "clone-or-pull": "node clone-or-pull-assets.js"

2。创建netlify.toml来运行build脚本:

[build]
  command = "npm run build"