【问题标题】:How to run a npm script before executing the build command when deploying my GatsbyJS static site on Netlify?在 Netlify 上部署我的 GatsbyJS 静态站点时,如何在执行构建命令之前运行 npm 脚本?
【发布时间】:2019-07-26 08:39:21
【问题描述】:

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

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

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


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

【问题讨论】:

  • 我认为在发送部署之前我需要使用 git 子树来创建我的私有仓库的副本。我试图避免子树/子模块,但我认为这可能是要走的路。

标签: node.js git netlify


【解决方案1】:

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

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

package.json:

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

所以这是我的解决方案:

  1. 创建执行clone-or-pull npm 脚本的prebuild 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多