无法在Gatsby构建中设置其他环境变量

时间:2018-10-31 07:00:29

标签: environment-variables gatsby

我正在尝试使用暂存环境变量构建Gatsby项目,但它始终使用生产环境变量

我使用了本教程Environment Variables | Gatsby

这是我的gatsby-config.js文件

let activeEnv = process.env.ACTIVE_ENV || process.env.NODE_ENV || 
'development';

console.log(`Using environment config: '${activeEnv}'`);

require("dotenv").config({
  path: `.env.${activeEnv}`,
});

module.exports = { 
plugins: [
   {
     resolve: `gatsby-plugin-sass`,
     options: {
       precision: 8,
     },
   },
 ]
};

这是我用来构建的命令

"build:staging": "set ACTIVE_ENV='staging' && gatsby build",

当我运行上面的命令时,它显示使用环境配置:“暂存” 但是在构建之后,它会使用生产变量

我的.env文件.env files

  

运行 ACTIVE_ENV ='staging'gatsby build 之后,我明白了

$ ACTIVE_ENV='staging' gatsby build
success delete html and css files from previous builds — 0.058 s
⠁ Using environment config: 'staging'
{ API_URL: 'https://api.company.com/api/company/test',
  COMPANY_URL: 'https://company.test.com/test/' }
success open and validate gatsby-config — 0.011 s
info One or more of your plugins have changed since the last time you ran 
Gatsby. As a precaution, we're deleting your site's cache to ensure there's not any stale
data
success copy gatsby files — 0.044 s
success onPreBootstrap — 0.039 s
success source and transform nodes — 0.026 s
success building schema — 0.112 s
success createLayouts — 0.007 s
success createPages — 0.001 s
success createPagesStatefully — 0.082 s
success onPreExtractQueries — 0.001 s
success update schema — 0.072 s
success extract queries from components — 0.041 s
success run graphql queries — 0.015 s
success write out page data — 0.005 s
success write out redirect data — 0.001 s
success onPostBootstrap — 0.001 s

info bootstrap finished - 3.516 s

success Building CSS — 13.139 s
success Building production JavaScript bundles — 26.757 s
⢀ Building static HTML for pages{ API_URL: 
'https://api.company.com/api/company/prod',
  COMPANY_URL: 'https://company.test.com/prod/',
  NODE_ENV: 'production',
  PUBLIC_DIR: 'D:\\website/public' }
success Building static HTML for pages — 8.390 s
info Done building in 51.808 sec

1 个答案:

答案 0 :(得分:0)

我使用跨环境软件包解决了此问题。现在一切正常。

这是命令

  

“ build:staging”:“跨环境ACTIVE_ENV = \” staging \“ gatsby build”,

现在,当我运行npm run build:staging时,它将使用.env.staging进行构建