我有一个使用gulp构建的chrome扩展React项目。我想根据环境传播配置值。例如,CHROME_ENV=staging
我希望拥有config.oauth_client_id = '<some ceratain thing>'
并能够根据环境进行更改。所以问题是双重的:
*如何根据环境变量构建不同的gulp文件?
*我如何构建我的React项目,以便有一个config
模块或varuable,它非常全局,可以存储我的配置。
答案 0 :(得分:0)
在你的gulpfile.js中,你可以使用dotenv,(https://github.com/motdotla/dotenv)来设置环境变量,或者只是传递gulp脚本:
NODE_ENV=staging gulp some-command
在节点中,您可以将其引用为process.env.NODE_ENV
。
将环境变量传递给您的构建取决于您正在使用的内容。
对于webpack,这是一个很好的答案:Passing environment-dependent variables in webpack
对于browserify,您很可能会看到: https://github.com/hughsk/envify
我使用在启动脚本时设置的环境变量或使用.env来引导我的客户端脚本,并从那里通过在脚本标记中呈现json从服务器发送它。这可能对您不起作用,因为它是浏览器扩展,需要在没有服务器的情况下执行,并且应该在构建时注入。