【问题标题】:Gatsby Cloud rebuild all the sites when I update only one site当我只更新一个站点时,Gatsby Cloud 会重建所有站点
【发布时间】:2023-01-19 10:10:36
【问题描述】:

我正在为我的 Gatsby 项目使用 Yarn 工作区。我创建了一个名为“milan-site-theme”的 Gatsby 主题,它位于根目录中。

我还创建了 4 个使用“milan-site-theme”作为依赖项的站点。这 4 个站点位于 packages 目录中。

我知道每当我对“milan-site-theme”进行更改时,这都会影响所有网站。 Gatsby 云检测到变化并同时重建所有站点,这是有道理的,也是我所期望的。

但是,当我仅对包目录中的其中一个站点进行更改时,Gatsby 云也会重建所有其他站点。这是正确的行为吗?这对我来说没有意义。 现在我只有 4 个网站,但我知道我很快就会添加更多。 我错过了什么吗? Here's the setup

这是主要的 package.json

{
  "name": "milan-gatsby-yarn",
  "private": true,
  "version": "1.0.0",
  "license": "0BSD",
  "scripts": {
    "build": "yarn workspace albany build"
  },
  "workspaces": [
    "milan-site-theme",
    "packages/nebraska/*",
    "packages/newyork/*",
    "packages/texas/*",
    "packages/wisconsin/*"
  ],
  "packageManager": "yarn@3.2.0",
  "dependencies": {
    "firebase": "^9.8.4",
    "gatsby-plugin-gatsby-cloud": "^4.22.0",
    "gatsby-plugin-page-creator": "^4.18.0"
  }
}

这是 package.json 网站之一(例如休斯顿网站)

{
  "name": "houston",
  "version": "1.0.0",
  "author": "my_email_goes_here",
  "license": "MIT",
  "scripts": {
    "develop": "gatsby develop",
    "build": "gatsby build",
    "clean": "gatsby clean"
  },
  "dependencies": {
    "gatsby": "^4.18.0",
    "milan-site-theme": "*",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }
}

注意:其余站点 package.json 除了 name prop 外看起来完全相同

最后,这是 milan-site-theme package.json

{
  "name": "milan-site-theme",
  "version": "1.0.0",
  "main": "index.js",
  "author": "my_email_goes_here",
  "license": "MIT",
  "peerDependencies": {
    "gatsby": "*",
    "node-fetch": "*",
    "react": "*",
    "react-dom": "*"
  },
  "dependencies": {
    "@loadable/component": "^5.15.2",
    "@u-wave/react-vimeo": "^0.9.8",
    "axios": "^0.27.2",
    "bootstrap": "^5.1.3",
    "firebase": "^9.8.4",
    "formik": "^2.2.9",
    "gatsby-plugin-breakpoints": "^1.3.7",
    "gatsby-plugin-image": "^2.18.0",
    "gatsby-plugin-manifest": "^4.20.0",
    "gatsby-plugin-page-creator": "^4.18.0",
    "gatsby-plugin-sharp": "^4.18.0",
    "gatsby-plugin-sitemap": "^5.20.0",
    "gatsby-plugin-smoothscroll": "^1.2.0",
    "gatsby-source-filesystem": "^4.18.0",
    "gatsby-transformer-json": "^4.20.0",
    "gatsby-transformer-sharp": "^4.18.0",
    "gbimage-bridge": "^0.2.1",
    "qs": "^6.10.5",
    "react-bootstrap": "^2.4.0",
    "react-countup": "^6.3.0",
    "react-datepicker": "^4.8.0",
    "react-detect-offline": "^2.4.5",
    "react-helmet": "^6.1.0",
    "react-icons": "^4.3.1",
    "react-input-mask": "^2.0.4",
    "react-slick": "^0.29.0",
    "react-split": "^2.0.14",
    "react-twitter-embed": "^4.0.4",
    "react-twitter-widgets": "^1.11.0",
    "react-visibility-sensor": "^5.1.1",
    "slick-carousel": "^1.8.1",
    "to-words": "^3.2.0",
    "yup": "^0.32.11"
  }
}

【问题讨论】:

    标签: yarn-workspaces yarn-v2 gatsby-cloud gatsby-theme


    【解决方案1】:

    问题是因为 gatsby cloud 没有“UI 库”和“网站”的概念。虽然它确实知道基本目录,但触发构建的是将更改推送到站点所在的回购协议——如果您使用的是 monorepo,除非您禁用自动构建,否则没有办法绕过它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 2019-10-28
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 2019-12-15
      相关资源
      最近更新 更多