如何根据gulp的环境进行不同的配置?

时间:2017-01-10 18:50:26

标签: reactjs gulp environment-variables

我有一个使用gulp构建的chrome扩展React项目。我想根据环境传播配置值。例如,CHROME_ENV=staging我希望拥有config.oauth_client_id = '<some ceratain thing>'并能够根据环境进行更改。所以问题是双重的: *如何根据环境变量构建不同的gulp文件? *我如何构建我的React项目,以便有一个config模块或varuable,它非常全局,可以存储我的配置。

1 个答案:

答案 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从服务器发送它。这可能对您不起作用,因为它是浏览器扩展,需要在没有服务器的情况下执行,并且应该在构建时注入。