我正在尝试更好地组织我的gatsby配置文件,但是我不确定我做对了。有人知道以下设置是否可以工作:
module.exports = {
plugins: [
{ gatsby_plugin__manifest },
{ gatsby_source__file_system__images },
{ gatsby_source__file_system__posts },
],
};
const gatsby_plugin__manifest = {
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
}
const gatsby_source__file_system__images = {
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
}
const gatsby_source__file_system__posts = {
resolve: `gatsby-source-filesystem`,
options: {
name: `posts`,
path: `${__dirname}/src/posts/`,
},
}
我说gatsby_plugin__manifest is not
defined
时出错,我想知道是否是因为我如何设置文件?
答案 0 :(得分:3)
我在这里看到两个问题:
根据Gatbsy文档,plugins
是字符串或对象的数组。在ES6中,{ gatsby_plugin__manifest },
是键值对{ gatsby_plugin__manifest: gatsby_plugin__manifest }
的简写。删除对象语法可以解决该问题。
第二,出于this answer中所述的原因,在导出中引用gatsby_plugin__manifest
之前声明ReferenceError
。
对于这些插件之一,总结这些建议:
// Declare gatsby_plugin__manifest before export
const gatsby_plugin__manifest = {
resolve: `gatsby-plugin-manifest`,
options: {
// ...configuration here
},
}
// Remove object syntax around gatsby_plugin__manifest
module.exports = {
plugins: [
gatsby_plugin__manifest,
],
};
答案 1 :(得分:1)
使用const
或let
声明的变量不会被吊起,因此在声明之前不能引用它们。将module.exports放在声明下面,它应该可以工作。