Node.js 在Netlify上部署我的GatsbyJS静态站点时,如何在执行build命令之前运行npm脚本?
我有一个名为Node.js 在Netlify上部署我的GatsbyJS静态站点时,如何在执行build命令之前运行npm脚本?,node.js,git,netlify,Node.js,Git,Netlify,我有一个名为clone或pull的npm脚本,我想在Netlify运行build命令部署使用GatsbyJS构建的静态站点之前运行该脚本(通过npm run clone或pull) 顺便说一句,因为我的静态站点是使用GatsbyJS构建的,所以构建命令Netlify在默认情况下运行的是gatsbybuild但是,我希望Netlify在执行gatbsy build之前执行npm run clone或pull 那么,在Netlify上部署GatsbyJS静态站点时,如何在执行build命令之前运行n
clone或pull
的npm脚本,我想在Netlify运行build命令部署使用GatsbyJS构建的静态站点之前运行该脚本(通过npm run clone或pull
)
顺便说一句,因为我的静态站点是使用GatsbyJS构建的,所以构建命令Netlify在默认情况下运行的是gatsbybuild
但是,我希望Netlify在执行gatbsy build
之前执行npm run clone或pull
那么,在Netlify上部署GatsbyJS静态站点时,如何在执行build命令之前运行npm脚本呢
仅供参考-我想执行
npm run clone或pull
来克隆我的可重用资产repo,它包含我的gatbsyjs静态站点所需的必要sass/image/font资源。在Netlify上部署站点时,我在执行build命令(在我的情况下是gatbsy build
)之前,已经知道了如何运行自定义npm脚本。但是在我展示我的解决方案之前,这里是我的包.json的一个片段:
GatsbyJS已经创建了一个名为build
的npm脚本,该脚本运行gatsby build
命令:
package.json:
"build": "gatsby build",
"clone-or-pull": "node clone-or-pull-assets.js"
[build]
command = "npm run build"
因此,我的解决方案如下:
创建执行克隆或拉取的npm脚本的prebuild
npm脚本
创建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": "gatsby build",
"clone-or-pull": "node clone-or-pull-assets.js"
[build]
command = "npm run build"
我想在发送部署之前,我需要使用git子树创建我的私有回购协议的副本。我试图避免使用子树/子模块,但我认为这可能是一种方法。