代码之家  ›  专栏  ›  技术社区  ›  Thabo

从生产生成网页包中排除节点模块/包

  •  0
  • Thabo  · 技术社区  · 8 年前

    我在做一个项目 "webpack": "^2.4.1", ,这是一个reactjs项目,我已经安装了这个模块 airbnb/prop-types-exact ,我将此包用于开发目的,我不希望编写的组件的用户将不存在的属性传递给该组件。

    我想删除这个包时,我建立的生产应用程序。我正在使用 Webpack Bundle Initializer 看看包裹的大小 Airbnb/道具类型精确 ,它并没有那么大,但我想把它从生产构建中删除,这是可以实现的吗?我正在使用的网页包版本还是后一个版本?

    我希望能得到任何关于这方面的资源或想法,谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Thabo    8 年前

    下面是一个例子 Blog by Mark

    更多关于这些插件的参考资料: IgnorePlugin DefinePlugin 我和他一样使用了这些插件 IgnorePlugin UglifyJsPlugin 然后在我使用的组件中 airbnb/prop-types-exact 包,我正在检查我所处的环境。

    let exactProps ;
    if (process.env.NODE_ENV === "development") {
        exactProps = require("prop-types-exact");
    }
    

    取决于 exactProps 有一个值,意味着require函数已经运行,并且,意味着 精确道具 具有来自 prop-types-exact 包裹, 我用这个函数包装我的道具类型。

    const propTypes = {
      someProp: PropTypes.iRequired
    }
    
    if (exactProps && typeof exactProps === "function") {
      MyComponent.propTypes = exactProps(propTypes);
    } else {
      MyComponent.propTypes = propTypes;
    }
    

    最后我导出mycomponent组件

    export MyComponent 
    

    我计划将组件的prop类型包装移到一个泛型模块中,以便它可以重用