从生产构建Webpack中排除node_module / package

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

我正在使用"webpack": "^2.4.1",的项目"webpack": "^2.4.1",这是一个ReactJS项目,我已经安装了airbnb/prop-types-exact模块,我正在使用此软件包进行开发,不想让我编写的组件的用户将不存在的属性传递给该组件。

在构建用于生产的应用程序时,我想删除此软件包。 我正在使用Webpack Bundle Initializer来查看airbnb/prop-types-exact的捆绑包大小, airbnb/prop-types-exact不是很大,但是我希望将其从生产版本中删除,这可以实现吗? 使用我使用的webpack版本还是使用后者?

感谢您提供任何与此相关的资源或想法。

reactjs webpack build production-environment
1个回答
0
投票

跟随Mark提供的来自此Blog的示例

关于这些插件的更多参考: IgnorePluginDefinePlugin我像他一样使用了插件,分别是IgnorePluginUglifyJsPlugin ,然后在我使用airbnb/prop-types-exact软件包的组件中,我正在检查哪个我喜欢的环境

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

并取决于exactProps是否具有值,意味着是否运行了require函数,以及(意味着exactProps具有来自prop-types-exact包中的函数),我将用此函数包装我的prop类型,例如。

const propTypes = {
  someProp: PropTypes.iRequired
}

if (exactProps && typeof exactProps === "function") {
  MyComponent.propTypes = exactProps(propTypes);
} else {
  MyComponent.propTypes = propTypes;
}

最后我导出MyComponent组件

export MyComponent 

我打算将组件的prop类型的包装移到通用模块中,以便可重复使用

© www.soinside.com 2019 - 2024. All rights reserved.