为什么 Gatsby 源文件系统在 npm 启动期间不识别环境只忽略?
Why does Gatsby Source Filesystem not recognize environment only ignore during npm start?
阅读如何在 Gatsby issue 中的 运行 构建中排除目录,它指示忽略 gatsby-source-filesystem
中的目录,您可以根据 env
与:
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/content`,
ignore: process.env.NODE_ENV === `production` && [`**/draft-*`]
}
}
ref 但是当我尝试使用类似的方法时:
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: process.env.NODE_ENV === `production` && [`*`],
},
},
它抛出一个终端错误:
Invalid plugin options for "gatsby-source-filesystem":
- "ignore" must be an array
我在 gatsby-config.js 的顶部引入 dotenv
并使用:
require('dotenv').config({
path: `.env.${process.env.NODE_ENV}`,
})
如果删除 env
条件,它会起作用:
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: [`*`],
},
},
我正在阅读“”,这让我想到了这个问题。我在 npm run build
上使用 npm run develop
没有问题。在 Gatsby develop 中,有没有办法在环境条件下使用忽略?
我不知道确切的原因,但我在使用不同的插件时遇到了同样的问题(比如为不同的环境生成不同的 sitemap.xml
或类似的东西)。我通过在 module.exports
范围之外生成变量来绕过它,例如:
require(`dotenv`).config({
path: `.env.${process.env.NODE_ENV}`
});
let ignore= process.env.NODE_ENV === `production` ? [`*`] : [];
module.exports = {
plugins: [
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: ignore,
},
},
]
根据需要调整三元条件以添加 process.env.NODE_ENV === `production` && [`*`]
。
阅读如何在 Gatsby issue 中的 运行 构建中排除目录,它指示忽略 gatsby-source-filesystem
中的目录,您可以根据 env
与:
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/content`,
ignore: process.env.NODE_ENV === `production` && [`**/draft-*`]
}
}
ref 但是当我尝试使用类似的方法时:
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: process.env.NODE_ENV === `production` && [`*`],
},
},
它抛出一个终端错误:
Invalid plugin options for "gatsby-source-filesystem":
- "ignore" must be an array
我在 gatsby-config.js 的顶部引入 dotenv
并使用:
require('dotenv').config({
path: `.env.${process.env.NODE_ENV}`,
})
如果删除 env
条件,它会起作用:
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: [`*`],
},
},
我正在阅读“npm run build
上使用 npm run develop
没有问题。在 Gatsby develop 中,有没有办法在环境条件下使用忽略?
我不知道确切的原因,但我在使用不同的插件时遇到了同样的问题(比如为不同的环境生成不同的 sitemap.xml
或类似的东西)。我通过在 module.exports
范围之外生成变量来绕过它,例如:
require(`dotenv`).config({
path: `.env.${process.env.NODE_ENV}`
});
let ignore= process.env.NODE_ENV === `production` ? [`*`] : [];
module.exports = {
plugins: [
{
resolve: `gatsby-source-filesystem`,
options: {
name: `designs`,
path: `${__dirname}/src/designs/`,
ignore: ignore,
},
},
]
根据需要调整三元条件以添加 process.env.NODE_ENV === `production` && [`*`]
。