尝试部署到 netlify/heroku 时,Gatsby Source Drupal 未获取数据
Gatsby Source Drupal not fetching data when trying to deploy to netlify/heroku
我有一个站点 运行ning Gatsby 和 Gatsby-Source-Drupal7,它是一个使用 Graphql 向 https://stagingsupply.htm-mbs.com/restws_resource.json 发出 axios get 请求并使用 json 的插件要查询的数据。我可以通过 localhost:8000 在我的计算机上 运行 它创建超过 200k 个节点,但是当我尝试在任何云服务提供商(如 Gatsby Cloud 或 Netlify)上部署时,它不会从站点获取任何节点或数据。
来自控制台的警告
Starting to fetch data from Drupal
warn The gatsby-source-drupal7 plugin has generated no Gatsby nodes. Do you need
it?
代码
来自 gatsby 配置的代码
module.exports = {
siteMetadata: {
title: `new`,
siteUrl: `https://www.yourdomain.tld`,
},
plugins: [
{
resolve: `gatsby-source-drupal7`,
options: {
baseUrl: `https://stagingsupply.htm-mbs.com/`,
apiBase: `restws_resource.json`, // optional, defaults to `restws_resource.json`
},
},
]
}
盖茨比-config.js 来自 node_modules/gatsby-source-drupal7
const createNode = actions.createNode; // Default apiBase to `jsonapi`
apiBase = apiBase || `restws_resource.json`; // Fetch articles.
// console.time(`fetch Drupal data`)
console.log(`Starting to fetch data from Drupal`);
const data = yield axios.get(`${baseUrl}/${apiBase}`, {
auth: basicAuth
});
const allData = yield Promise.all(_.map(data.data.list,
Link 到在本地计算机上工作的 repo https://github.com/nicholastorr/gatsby-d7
我们将不胜感激任何帮助
正如您所指出的,您已经使用 NODE_ENV
和 engines
变通方法试用了 Node 版本。我的猜测还依赖于环境之间不匹配的 Node 版本,但正如 Netlify docs 所建议的那样,只有两种自定义 Node 版本以管理依赖项的方法。
- Set a
NODE_VERSION
environment variable.
- Add a
.node-version
or .nvmrc
file to the site’s base directory in your repository. This will also tell any other developer using the
repository which version of Node.js it depends on.
没有看到您的 Netlify 构建命令(查看 NODE_VERSION
),您的存储库中没有 .node-version
也没有 .nvmrc
。我会尝试在项目的根目录下使用 v14.17.1
创建它并尝试全新安装。
此外,double-check其他server-related与IP-blocking等冲突
错误与 Gatsby 或 Node 无关,我的站点阻止了服务器的 IP :>
我有一个站点 运行ning Gatsby 和 Gatsby-Source-Drupal7,它是一个使用 Graphql 向 https://stagingsupply.htm-mbs.com/restws_resource.json 发出 axios get 请求并使用 json 的插件要查询的数据。我可以通过 localhost:8000 在我的计算机上 运行 它创建超过 200k 个节点,但是当我尝试在任何云服务提供商(如 Gatsby Cloud 或 Netlify)上部署时,它不会从站点获取任何节点或数据。
来自控制台的警告
Starting to fetch data from Drupal
warn The gatsby-source-drupal7 plugin has generated no Gatsby nodes. Do you need
it?
代码
来自 gatsby 配置的代码
module.exports = {
siteMetadata: {
title: `new`,
siteUrl: `https://www.yourdomain.tld`,
},
plugins: [
{
resolve: `gatsby-source-drupal7`,
options: {
baseUrl: `https://stagingsupply.htm-mbs.com/`,
apiBase: `restws_resource.json`, // optional, defaults to `restws_resource.json`
},
},
]
}
盖茨比-config.js 来自 node_modules/gatsby-source-drupal7
const createNode = actions.createNode; // Default apiBase to `jsonapi`
apiBase = apiBase || `restws_resource.json`; // Fetch articles.
// console.time(`fetch Drupal data`)
console.log(`Starting to fetch data from Drupal`);
const data = yield axios.get(`${baseUrl}/${apiBase}`, {
auth: basicAuth
});
const allData = yield Promise.all(_.map(data.data.list,
Link 到在本地计算机上工作的 repo https://github.com/nicholastorr/gatsby-d7
我们将不胜感激任何帮助
正如您所指出的,您已经使用 NODE_ENV
和 engines
变通方法试用了 Node 版本。我的猜测还依赖于环境之间不匹配的 Node 版本,但正如 Netlify docs 所建议的那样,只有两种自定义 Node 版本以管理依赖项的方法。
- Set a
NODE_VERSION
environment variable.- Add a
.node-version
or.nvmrc
file to the site’s base directory in your repository. This will also tell any other developer using the repository which version of Node.js it depends on.
没有看到您的 Netlify 构建命令(查看 NODE_VERSION
),您的存储库中没有 .node-version
也没有 .nvmrc
。我会尝试在项目的根目录下使用 v14.17.1
创建它并尝试全新安装。
此外,double-check其他server-related与IP-blocking等冲突
错误与 Gatsby 或 Node 无关,我的站点阻止了服务器的 IP :>