如何包含自定义/本地Gastby插件并成功在Netlify上构建和部署?

时间:2019-04-27 22:26:08

标签: gatsby netlify

我有一个Gatsby生成的网站,可以使用Netlify进行部署。

我已按照列出的here教程以非常相似的方式创建了自定义/本地源插件。

自定义插件显然具有其自己的package.json文件,因此在通过根级别npm i导入时,需要gatsby-config.js才能正常工作。

在Netlify部署中为自定义插件安装依赖项的最简单方法是什么?

2 个答案:

答案 0 :(得分:2)

Gatsby与纱线配合得很好。 Netlify支持使用纱线,因此您具有选项来设置纱线工作区。

纱线工作区具有附加的优势,使您可以在准备使用Gatsby时开始创建主题。 Yarn将使用该配置来维护插件的node_modules链接,就好像您已使用npm安装该插件一样。以后,您总是可以将插件发布到npm并将其用作其他站点的模块。

  • 将您的Gatsby网站移至其自己的目录(例如gatsby-site
  • 将源插件创建/移动到它自己的位置(例如gatsby-source-someplugin
  • 使用yarn workspace gatsby-site add gatsby-source-someplugin将依赖项添加到源插件的站点中
  • 如下所示在项目的根目录下创建一个简单的package.json

package.json

{
  "name": "gatsby-example",
  "version": "0.1.0",
  "private": true,
  "author": "Your Name <your@email.com>",
  "license": "MIT",
  "workspaces": [
    "gatsby-site",
    "gatsby-source-someplugin"
  ]
}
  • 确保运行yarn并在本地构建yarn.lock文件,然后将其推送到存储库中。它将使Netlify知道您正在使用纱线,并将为您安装和配置纱线。

注意: :如果有,请确保将netlify.toml保留在根目录中。另外,将部署路径更改为gatsby-site/public目录。更改构建命令以使用工作空间(即yarn workspace gatsby-site build)。在本地测试build命令应证明一切正常。

答案 1 :(得分:1)

最简单的是,我认为您可以指示yarn(或npm)cd到您的插件文件夹中,然后运行install。

在netlify中,您可以将默认的构建脚本从默认的gatsby build更改为yarn build(或等价的npm)。

然后,在您的根package.json中的scripts中,添加以下内容:

"install-plugin": "cd ./plugins/your-plugin-name && yarn",
"build": "yarn install-plugin && gatsby build"

当您拥有多个自定义插件时,这不是最优雅的解决方案;对于这种情况,我认为可以使用自定义的安装后脚本。


或者,您也可以将插件的所有依赖项直接添加到根package.json!