Как добавить собственный / локальный плагин Gastby и успешно создавать и развертывать на Netlify? - PullRequest
1 голос
/ 28 апреля 2019

У меня есть созданный Gatsby веб-сайт, который я развертываю с помощью Netlify.

Я следовал учебному пособию, указанному здесь , чтобы создать собственный / локальный плагин исходного кода очень похожим образом.

Пользовательский плагин, очевидно, имеет свой собственный файл package.json и поэтому требует, чтобы все работало при npm i при импорте через корневой уровень gatsby-config.js.

Какой самый простой способ получить зависимости для установки для моего пользовательского плагина в моем развертывании Netlify?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Гэтсби хорошо работает с пряжей. 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). Локальная проверка команды сборки должна доказать, что все работает.

1 голос
/ 28 апреля 2019

Проще всего, я думаю, что вы можете указать yarn (или npm) перейти в вашу папку плагинов, а затем запустить установку.

В netlify вы можете изменить сценарий сборки по умолчанию с gatsby build на yarn build (или эквивалент в npm).

Затем, в свой корневой package.json, в scripts, добавьте:

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

Это не самое элегантное решение, когда у вас есть большечем несколько пользовательских плагинов;в этом случае я думаю, что пользовательский скрипт после установки может работать.


В качестве альтернативы вы также можете добавить все зависимости плагина непосредственно в корневой пакет. json!

...