我正在开发一个使用"webpack": "^2.4.1",
的项目,它是一个ReactJS项目,我已经安装了模块airbnb/prop-types-exact
,我正在使用这个包进行开发,我不想要用户我写的一个组件,用于将不存在的属性传递给该组件。
我想在构建生产应用程序时删除此包。我使用Webpack Bundle Initializer
来查看airbnb/prop-types-exact
的包大小,它不是那么大,但我想将它从生产版本中删除,这是否可以实现?使用我正在使用的webpack版本还是使用后者版本?
我很感激任何关于此的资源或想法,谢谢。
答案 0 :(得分:0)
下面的示例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函数已经运行)和(意味着exactProps
具有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类型的包装移到通用模块中,以便可重复使用