реагировать CRA - исключить отладочный код из сборки - PullRequest
0 голосов
/ 29 августа 2018

Есть ли способ полностью исключить некоторый код из операторов if в производственном режиме ??

Я пытался сделать что-то подобное:

import React from "react";
import Loadable from 'react-loadable';

function Loading() {
  return <div></div>;
}

let LoadableDebugBar;

if (process.env.NODE_ENV !== 'production') {
  LoadableDebug = Loadable({
    loader: () => import('./Debug'),
    loading: Loading
  });
} else{
  LoadableDebug = Loadable({
    loader: () => import('./BlankComponent'),
    loading: Loading
  });
}

export default LoadableDebug;

Проблема в том, что при сборке приложения вы все равно можете увидеть исходный код отладочного компонента. Идея состоит в том, чтобы полностью удалить его, поскольку в производственном режиме компонент никогда не используется.

Даже если я лениваюсь, это все равно меня не устраивает, потому что я хочу полностью избавиться от него, чтобы скрыть все функции отладки.

1 Ответ

0 голосов
/ 07 сентября 2018

Решил это следующим образом: внутри моего кода сборки больше нет компонента отладки.

import React, { Component } from 'react';
let DebugBarContainer;

if (process.env.NODE_ENV !== 'production') {
  DebugBarContainer = require('../../containers/DebugBarContainer').default;
} else {
  DebugBarContainer = () => null;
}

class App extends Component {
    render() {
    return (
        <DebugBarContainer />
      </div>
    );
  }
}
export default App;
...