反应CRA - 从构建中排除调试代码

问题描述 投票:1回答:1

是否有任何方法可以从生产模式中的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;

问题是,当构建App时,您仍然可以看到来自调试组件的源代码是完全剥离它,因为在生产模式下,组件永远不会被使用。

即使我懒惰它仍然不满足我,因为我想完全摆脱它所以我可以隐藏所有调试功能。

reactjs optimization production-environment dead-code react-loadable
1个回答
0
投票

解决这个问题:在我的构建代码中,不再有调试组件。

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;
© www.soinside.com 2019 - 2024. All rights reserved.