如何在React Native中分离生产和开发代码?

时间:2017-01-17 12:35:12

标签: react-native

我遗憾地找不到任何正确的答案。

我目前正在使用redux开发一个反应原生的应用程序,我发现某些开发工具正在减慢发布版本。

以下是一个例子:

const store = createStore(
  Reducers,
  composeWithDevTools(
    applyMiddleware(thunk),
  ),
);

这个composeWithDevTools显然是一些开发工具,release我应该使用另一个名为compose的函数。 我想做的事情是这样的:

//development
const store = createStore(
  Reducers,
  composeWithDevTools(
    applyMiddleware(thunk),
  ),
);
//production
const store = createStore(
  Reducers,
  composeWithDevTools(
    applyMiddleware(thunk),
  ),
);
//end

考虑到我的位置,它会自动选择正确的代码示例。 (开发或发布)。

你们知道我可以使用哪种工具吗?

提前致谢

2 个答案:

答案 0 :(得分:7)

您可以使用__DEV__全局常量。而且,babel编译器足够智能,可以完全删除常量保护的代码,因此您还可以减少代码大小。

例如,我们使用此代码初始化store:

function setupStore(extra = {}) {
  const middlewares = [thunk.withExtraArgument(extra)]
  if (__DEV__) {
    const createLogger = require('redux-logger').createLogger // redux-logger 3.x
    const logger = createLogger()
    middlewares.push(logger)
  }
  const store = createStore(reducer, applyMiddleware(...middlewares), autoRehydrate())
  return store
}

答案 1 :(得分:1)

Redux Logger已经改变了一段时间。

现在您需要像这样导入: 3000980511.29551 bytes/s 2861.95803765823 mbytes/s

在上面的示例中,您可以执行以下操作:

import { createLogger } from 'redux-logger';