我有这样的配置,如下所示。但是,即使if语句只进入" production"
,它似乎也会加载开发脚本 if (process.env.NODE_ENV === 'production') {
module.exports = require('./configureStoreProd')
} else {
module.exports = require('./configureStoreDev')
}
如果我从' redux-logoer" 中删除"导入记录器,则不会在分析器上显示。
我猜测webpack构建供应商文件时,NODE_ENV是未定义或为空。我该如何正确设置?
答案 0 :(得分:0)
我使用的解决方法:
您的配置文件(您将在希望使用它的js文件中导入)确定您将使用哪个文件,具体取决于您所处的环境。
<强> config.js 强>
var config = null;
if (process.env.NODE_ENV !== 'production') {
config = require('./config.development');
}else {
config = require('./config.production');
}
export default config;
您的配置生产 .json 文件,如果您在生产环境中,则会选择该文件。同样适合发展。
<强> config.production.json 强>
{
"graphQlEndpoint": {
"uri": "YourUriHere"
},
}
在商店中,您可以导入config.js文件,然后选择所需的变量。示例:config - &gt; graphQlEndpoint - &gt; URI
<强> store.js 强>
import config from '../../configs/config';
networkInterface = createNetworkInterface({
uri: config.graphQlEndpoint.uri
});
const store = createStore(rootReducer, defaultState, networkInterface);
我发现使用require()
和在儿子中使用 config 文件更容易。然后,您可以在导入它的任何位置使用配置文件和正确的环境。
我建议您使用npm run build
进行测试。
希望这有帮助