首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建网站时,如何使用不同的信任(盖茨比构建)

在构建网站时,如何使用不同的信任(盖茨比构建)
EN

Stack Overflow用户
提问于 2021-04-29 15:02:21
回答 1查看 353关注 0票数 1

我建立了一个静态网站使用gatsbyJS和prismic.io作为一个无头的CMS。有人知道如何在构建网站(gatsby build)时使用不同的配置(例如: gatsby config 1/ gatsby config 2)。最终目标是使用Jenkins使用相同的代码库(但css/config )自动构建不同的站点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 15:48:49

嗯,它并不是使用“不同的gatsby-config.js”文件,但最相似的方法是使用环境变量。这将允许您对不同的设置使用相同的gatsby-config.js

默认情况下,盖茨比在运行developmentgatsby build时使用gatsby developgatsby build作为环境(您可以根据需要使用自定义环境覆盖此行为)。通过这种方式,您需要告诉盖茨比,这些变量集合在哪里。这是由以下代码段(在gatsby-config.js中)完成的:

代码语言:javascript
复制
require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})

如果您在项目的根目录创建了一个.env.development.env.production,您可以简单地这样做:

代码语言:javascript
复制
GATSBY_API_URL=https://example.com/api
API_KEY=927349872349798

现在,在任何配置参数中,您可以使用存储在以下文件中的环境变量:

代码语言:javascript
复制
module.exports = {
  plugins: [
    {
      resolve: `gatsby-source-patronus`,
      options: {
        apiKey: process.env.API_KEY,
      },
    },
  ],
}

通过扩展此行为,您可以自定义正在运行的命令,以使用不同的环境文件,如.env.siteOne.env.siteTwo,只需在package.json中更改和创建自己的脚本,并使用GATSBY_ACTIVE_ENV变量:

代码语言:javascript
复制
 "scripts": {
    "build-site-one": "GATSBY_ACTIVE_ENV=siteOne gatsby build",
    "build-site-two": "GATSBY_ACTIVE_ENV=siteTwo gatsby build",
  },

只是在跑:

代码语言:javascript
复制
 npm run build-site-one

您将接受存储在.env.siteOne文件中的环境变量,以便指向不同的CMS配置、不同的主题、不同的路由和路径等。

免责声明:整个过程的目的是使用服务器端变量来更改某些配置/参数。若要使用客户端(JavaScript)变量,可以省略require("dotenv").config({ path: `.env.${process.env.NODE_ENV}`})部件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67319966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档