Устраняет ли Babel условие троичного оператора с помощью удаления мертвого кода? - PullRequest
4 голосов
/ 11 июня 2019

Я работаю с React Native и использую зависимость (Reactotron), которая используется только в отладочных сборках и не должна существовать в релизных сборках.Читая документы, я узнал об удалении мертвого кода на Babel.

let foo = baz;
if (__DEV__) {
  foo = bar;
}

В соответствии с этим комментарием, Babel устранит блок if при сборке релиза, так как __DEV__ будетвсегда быть false.Но это все еще работает для троичных операторов?

const foo = __DEV__ ? bar : baz;

Я не могу найти какие-либо ресурсы, которые так или иначе говорят о троичных операторах.Будет ли Babel упрощать троичное условие в следующих версиях сборки?

const foo = baz;

Использование - следующий блок кода.Я думал об удалении оператора if с помощью троичного оператора.Но я не уверен, что это предотвратит удаление Reactotron из релизной сборки.

let enhancer = applyMiddleware(...middlewares);

// Add Reactotron enhancer if debug mode
if (__DEV__) {
  const Reactotron = require('@flashmobile:config/reactotron').default;
  enhancer = compose(applyMiddleware(...middlewares), Reactotron.createEnhancer());
}

const store: Store = createStore(reducers, INITIAL_STATE, enhancer);
...