2017-04-07 41 views
1

我有一个React on Rails命中API的应用程序。我想将API端点配置为localhost以进行开发,并将我的已部署应用程序的URL用于生产。在React on Rails中访问NODE_ENV环境变量

客户机/的package.json

"scripts": { 
    "build:production": "NODE_ENV=production webpack --config webpack.config.js", 
}, 

客户机/ webpack.config.js

const devBuild = process.env.NODE_ENV !== 'production'; 

const config = { 
    entry: [ 
    'es5-shim/es5-shim', 
    'es5-shim/es5-sham', 
    'babel-polyfill', 
    './app/bundles/Main/startup/registration', 
    ], 
    output: { 
    filename: 'webpack-bundle.js', 
    path: __dirname + '/../app/assets/webpack', 
    }, 
    resolve: { 
    extensions: ['.js', '.jsx'], 
    }, 
    plugins: [ 
    new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }), 
    ] 
} 

我看到process.env.NODE_ENV是在配置/ webpack.config.js可用(使用在这里将源映射devtools添加到模块导出中),但我想要一种方法来查看client/中React代码中的环境。如果有的话我有什么选择?

+0

我不知道关于阵营on Rails的,但在我的环境做出反应,我可以访问相同的变量 - process.env.NODE_ENV。你尝试过吗? –

+0

是的,'进程'不幸在'/ client'中定义。它在* webpack.config *中,但通过某种方式访问​​它或将它传递到客户端目录将是理想的 –

回答

0

我刚才在Redux操作文件中成功使用了process.env.NODE_ENV。我在的WebPack出口NODE_ENV与webpack.config.js如下插件定义:

plugins: [ 
    ... 
    new webpack.DefinePlugin({ 
     'process.env': { 
      NODE_ENV: JSON.stringify('ENV_VALUE') 
     } 
    }) 
]